Error: Cannot read file – File > Open – UI freeze on large datasets
0 reputation · 10 May 2025, 23:32 UTC
0 reputation · 10 May 2025, 23:32 UTC
Determine how Blender’s File > Open operation handles large .blend files and why the UI becomes unresponsive without a progress indicator.
34775 reputation · 11 May 2025, 01:29 UTC
File > Open in Blender is a synchronous, main-thread operation. Reading the file, decompressing it, running versioning, relinking pointers, and rebuilding the dependency graph all finish before the window manager's event loop runs again. The window stops repainting, the OS may label it "Not Responding," and no progress bar or cancel button appears — not because loading failed, but because the .blend reader does not feed the job/progress system that rendering and baking use. Error: Cannot read file is a separate code path, reported only when the file is missing, unreadable, or structurally invalid. A long silent load is expected behavior, not an error state.
Confirmed for Blender 2.8x–3.x as far as my knowledge goes — verify on your exact build, since I cannot confirm what changed after 3.5:
Likely but unconfirmed: for most heavy scenes, the bulk of wall-clock time is spent after the disk read — in library relinking, versioning, and depsgraph rebuild. That is why faster storage alone often yields less speedup than expected.
| Aspect | Blocking (current) | Asynchronous |
|---|---|---|
| State complexity | One scene database, no locks, undo code assumes exclusive access | Locking or double-buffered scenes; old and new coexist |
| Peak memory | One file's worth | Higher while both scenes exist |
| Cancellation | None | Required, with defined semantics |
| User experience | Unresponsive window, no feedback | Responsive UI, spinner possible |
Blocking keeps memory and state simple and avoids partial loads. Async loading buys responsiveness and cancellation at the cost of a thread-safe handoff, higher peak memory, and a larger crash surface in versioning and undo code — which is why blocking has historically been the simpler, safer default.
A true percentage is unrealistic: total work is not known before parsing completes. What is feasible with the existing status-bar job mechanism is an indeterminate spinner plus cancel, with missing, corrupt, and newer-version outcomes routed through the same report channel for consistent feedback. Whether anything like this landed after 3.5 I cannot confirm — the "up to 3.5" claim in the discussion is user-reported, so check the release notes for your version before assuming.
blender --debug then open the file, or pass the path on the command line.During the freeze, check Task Manager (Windows) or Activity Monitor (macOS):
Which of those you observe decides whether the next step is file restructuring or storage work. That single observation is the missing detail; share it and the recommendation follows directly.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.