Search first
What Happened?
When i import from Logseq OG while i have it open and edit a page, there is an error and the page is not imported.
Reproduce the Bug
- Start import from Logseq OG directory
- Edit a page while the import runs in Logseq OG
Expected Behavior
The import should not have errors or data loss.
Files
No response
Browser, Desktop or Mobile Platform Information
NixOS 25.11.10134.26ef669cffa9
Logseq Desktop (AppImage) 2.0.1-alpha+nightly.20260503
Additional Context
The simplest and most effective solution would be do tell the user to close Logseq OG and not edit the files with any other program. To really make the import bulletproof, you could check if OG is open and show a big red warning that tells the user to really close it.
To generally make import more robust, you should retry when reading a file fails!
Error in JS Console:
utils.js:19 17:38:39.607 [frontend.components.imports] {:import-error {:path "pages/Logseq.md", :error #object[DOMException NotReadableError: The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.]}, :line 329}
console.error @ utils.js:19
(anonymous) @ console.js:40
Ria @ core.cljs:4085
Sia @ core.cljs:4080
$APP.Dd.B @ core.cljs:4074
(anonymous) @ console.cljs:45
c @ glogi.cljs:199
(anonymous) @ log.js:702
Hca @ log.js:701
Sca @ log.js:994
Wo.H @ glogi.cljs:26
s4c @ imports.cljs:329
(anonymous) @ exporter.cljs:2249
(anonymous) @ core.cljc:325
(anonymous) @ impl.cljc:113
UOa @ promise.js:288
VOa @ promise.js:360
reject @ promise.js:154
(anonymous) @ promise.js:251
(anonymous) @ promise.js:327
YOa @ promise.js:305
UOa @ promise.js:296
VOa @ promise.js:360
reject @ promise.js:154
(anonymous) @ promise.js:251
(anonymous) @ promise.js:327
YOa @ promise.js:305
UOa @ promise.js:296
VOa @ promise.js:360
reject @ promise.js:154
(anonymous) @ promise.js:251
(anonymous) @ promise.js:327
YOa @ promise.js:305
UOa @ promise.js:296
VOa @ promise.js:360
reject @ promise.js:154
(anonymous) @ promise.js:251
YOa @ promise.js:305
UOa @ promise.js:296
VOa @ promise.js:360
reject @ promise.js:154
(anonymous) @ promise.js:415
Promise.then
nPa @ promise.js:412
GPa.a.Tn @ impl.cljc:88
$APP.S @ protocols.cljc:41
(anonymous) @ exporter.cljs:2241
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
qFc @ exporter.cljs:2241
(anonymous) @ exporter.cljs:2270
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2267
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
handle @ promise.js:133
YOa @ promise.js:326
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
handle @ promise.js:133
YOa @ promise.js:326
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
V6b @ remote.cljs:102
g @ remote.cljs:191
f.M @ remote.cljs:190
$APP.Dd.C @ core.cljs:4117
lx.D @ state.cljs:74
i6b @ browser.cljs:98
(anonymous) @ imports.cljs:398
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
handle @ promise.js:133
YOa @ promise.js:326
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2177
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
VOa @ promise.js:360
resolve @ promise.js:144
$APP.h.$t @ impl.cljc:126
yOa @ protocols.cljc:49
c @ core.cljc:72
(anonymous) @ exporter.cljs:2154
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
handle @ promise.js:133
YOa @ promise.js:326
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2154
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:2154
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
iPa @ promise.js:99
$APP.h.cu @ impl.cljc:101
bp.B @ protocols.cljc:11
bp @ protocols.cljc:10
zPa.br @ exec.cljc:485
BOa @ protocols.cljc:54
uPa @ exec.cljc:255
(anonymous) @ exporter.cljs:2154
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
handle @ promise.js:133
YOa @ promise.js:326
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
VOa @ promise.js:360
resolve @ promise.js:144
(anonymous) @ promise.js:253
(anonymous) @ promise.js:327
YOa @ promise.js:309
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
handle @ promise.js:133
YOa @ promise.js:326
UOa @ promise.js:296
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:1672
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:1672
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Promise.then
(anonymous) @ promise.js:189
ePa @ promise.js:260
kPa @ promise.js:119
$APP.h.gu @ impl.cljc:105
$APP.T.B @ protocols.cljc:17
T @ protocols.cljc:10
(anonymous) @ exporter.cljs:1672
(anonymous) @ impl.cljc:105
UOa @ promise.js:286
(anonymous) @ promise.js:189
Are you willing to submit a PR? If you know how to fix the bug.
Search first
What Happened?
When i import from Logseq OG while i have it open and edit a page, there is an error and the page is not imported.
Reproduce the Bug
Expected Behavior
The import should not have errors or data loss.
Files
No response
Browser, Desktop or Mobile Platform Information
NixOS 25.11.10134.26ef669cffa9
Logseq Desktop (AppImage) 2.0.1-alpha+nightly.20260503
Additional Context
The simplest and most effective solution would be do tell the user to close Logseq OG and not edit the files with any other program. To really make the import bulletproof, you could check if OG is open and show a big red warning that tells the user to really close it.
To generally make import more robust, you should retry when reading a file fails!
Error in JS Console:
Are you willing to submit a PR? If you know how to fix the bug.