hooksTimeout
⚠️This is a V1 design only feature: make sure to 1. update Vike to the latest version and 2. migrate to the V1 design.
If a hook returns a promise that takes too much time to resolve, then Vike logs an error and your error page is rendered.
# Vike first logs a warning (still awaiting your hook)
[vike][Warning] The data() hook defined by /pages/movies/+data.js is slow: it's taking more than 4 seconds
# Then Vike logs an error (and renders your error page)
[vike][Error] The data() hook defined by /pages/movies/+data.js timed out: it didn't finish after 30 seconds
You can configure the timeout of hooks:
// +config.js
export default {
hooksTimeout: {
data: {
// Increase warning timeout to 5 seconds
warning: 5 * 1000,
// Increase error timeout to one minute
error: 60 * 1000
}
}
}
Disable
You can disable timeouts:
// +config.js
export default {
hooksTimeout: {
data: {
// Disable the warning timeout
warning: false
}
// No timeout at all: Vike won't warn and will indefinitely await the
// promise returned by onRenderClient()
onRenderClient: false
}
}
⚠️We strongly discourage this practice:
- You may always want to be informed when one of your hooks is slowing down your UI.
- Showing an error page is usually a better UX than displaying a UI that hangs indefinitely.
- If your server doesn't time out long running HTTP requests, then you have a memory leak. Instead, consider increasing timeouts as the need arises.
You can also disable timeouts for all hooks:
// +config.js
export default {
// We strongly recommend against this
hooksTimeout: false
}