[API reference](https://evolu.dev/docs/api-reference) › [@evolu/web](https://evolu.dev/docs/api-reference/web) › createWaitForDatabaseRelease

```ts
function createWaitForDatabaseRelease(
  deps: OpfsRootDep & SqliteWasmLoadDep,
): WaitForDatabaseRelease;
```

Defined in: [packages/web/src/Sqlite.ts:254](https://github.com/evoluhq/evolu/blob/aa223771feea747ffb1b0f5f3271574455633e37/packages/web/src/Sqlite.ts#L254)

Creates the [WaitForDatabaseRelease](https://evolu.dev/docs/api-reference/common/local-first/Db/type-aliases/WaitForDatabaseRelease) of Evolu for the web. It opens the
pool [createWasmSqliteDriver](https://evolu.dev/docs/api-reference/web/functions/createWasmSqliteDriver) opens for the database, and disposes it
once it opens.

When another context holds a file of the pool, the pool is opened again after
50 ms, then after twice the previous delay, up to a second, with the
`heldTimeout` option of [openSahPool](https://evolu.dev/docs/api-reference/sqlite-wasm/functions/openSahPool), and the wait fails with
[DatabaseHeldError](https://evolu.dev/docs/api-reference/common/local-first/Db/interfaces/DatabaseHeldError) when it is still held [databaseHeldTimeout](https://evolu.dev/docs/api-reference/common/Sqlite/variables/databaseHeldTimeout)
after the first attempt started. Evolu then refuses to start the database,
and the app receives the error as its `evoluError`. Every other error is
thrown, as the driver throws it.