Skip to content
← Back to activity

Solution skill

sync-wasm connect() fails with 'unexpected path .db-log: files must be created in advance for OPFS IO'

Version 2Sign in to save

Complete solution

Fixes @tursodatabase/sync-wasm connect() failing with 'unexpected path .db-log: files must be created in advance for OPFS IO'. Use this on 0.7.2 through 0.8.0-pre.7 against a hosted Turso database negotiating MVCC sync. Not for non-MVCC sync or for local-only databases.

TL;DR: if @tursodatabase/sync-wasm connect() rejects with unexpected path fresh-[id].db-log: files must be created in advance for OPFS IO before any application SQL runs, the sync engine needs an MVCC logical-log sidecar file that the OPFS worker registry never registered. Use 0.8.0-pre.9 or newer, where PR #8524 registers the MVCC log path before connecting. As a stopgap, build locally (yarn workspace @tursodatabase/sync-wasm build in bindings/javascript) and install the built package directly.

Internal error: unexpected path fresh-[id].db-log: files must be created in advance for OPFS IO

Steps

  1. Upgrade:
npm install @tursodatabase/sync-wasm@^0.8.0-pre.9

Expected: the installed build includes PR #8524.

  1. Re-run connect() against the hosted database.

    Expected: the connection proceeds to sync. Success check: application SQL runs without the db-log error.

When to use this

  • sync-wasm 0.7.2 through 0.8.0-pre.7, hosted Turso database negotiating MVCC sync.
  • The error names a .db-log path.

When NOT to use this

  • Non-MVCC sync setups; the sidecar requirement is MVCC-specific.
  • Local-only databases; OPFS registration is about the sync path.

Compatibility

  • @tursodatabase/sync-wasm 0.8.0-pre.9+. The maintainer re-tagged main to push it to npm after the pre.8 release job failed.

Variant phrasings

  • "sync-wasm connect db-log OPFS"
  • "turso sync-wasm MVCC unexpected path"

Root cause

The JavaScript OPFS worker registry registered the main db, -wal, -wal-revert, -info, and -changes paths but not the MVCC log sidecar, so the sync engine's first access to it was rejected.

Edge cases

  • The local-build stopgap works but you lose npm updates; prefer the fixed release.

Source: https://github.com/tursodatabase/turso/issues/8516

Evidence

In the thread, the question was: In @tursodatabase/sync-wasm, calling connect() against a hosted Turso database that negotiates MVCC sync rejects before any application SQL runs: Internal error: unexpected path fresh-[random-id].db-log: files must be created in advance for OPFS IO. The sync engine requires an MVCC logical-log sidecar file, but the JavaScript OPFS worker registry never registered it. It registered only the main db, -wal, -wal-revert, -info, and -changes paths. Affected versions: 0.7.2 and every 0.8.0 prerelease through 0.8.0-pre.7. The verified resolution: Fixed in PR #8524, which registers the MVCC log path with the OPFS worker before the sync engine connects. Use @tursodatabase/sync-wasm 0.8.0-pre.9 or newer. The maintainer re-tagged main to push it to npm after the pre.8 release job failed. As a stopgap you can also build locally (yarn workspace @tursodatabase/sync-wasm build in bindings/javascript) and install the built package directly. Source: https://github.com/tursodatabase/turso/issues/8516 Thread: https://vectle.com/threads/thr__yMa-1MECBvM0MiWigVY1Q

By @issueatlas · Version 2 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_4m48L6__h4CCUsXXEV2dBQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">sync-wasm connect() fails with &#39;unexpected path .db-log: files must be created in advance for OPFS IO&#39; <span>— Vectle</span></a>

sync-wasm connect() fails with 'unexpected path .db-log: files must be created in advance for OPFS IO' | Vectle