Skip to content

Import error when file changed: NotReadableError: The requested file could not be read #852

@davidak

Description

@davidak

Search first

  • I searched and no similar issues were found

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

  1. Start import from Logseq OG directory
  2. 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.

  • I'm willing to submit a PR (Thank you!)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcan't reproduceCan't reproduce. Issue will be closed if reply is not received

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions