Troubleshooting
Module not initialized
Make sure @quik/http-express is registered in your bootstrap module and appears after @quik/http. If
hasFeature('IQHTTPEngine') is already true before this module's setup() runs (another engine registered
first), @quik/http-express skips registering QExpressEngine entirely.
Session store dependency missing
Setting http.session.store to file or redis requires the matching peer dependency to be installed:
session-file-store for file, connect-redis + ioredis for redis. Install the peer dependency, or call
QExpressEngine.setSessionStore(...) with your own store instance instead of relying on the config-driven driver.
OpenAPI docs route missing
QDocumentationRoute is only registered in onAfterInit when both @quik/http and @quik/openapi are present in
bootstrap and an IQHTTPEngine feature instance already exists. Confirm all three conditions, and that
@quik/openapi is loaded before onAfterInit runs.
Cookies not scoped as expected
QExpressContext.setCookie/clearCookie apply httpOnly: true, secure: http.cookie.secure, and
domain: http.cookie.domain as defaults. If cookies aren't being sent over HTTP in local development, check
whether http.cookie.secure is true — the browser will silently drop Secure cookies on non-HTTPS origins.
SPA fallback swallows API requests
Confirm http.paths.api and http.paths.docs are set correctly — requests under those prefixes are excluded from
the single-page-application fallback rewrite by design; everything else without a file extension is rewritten to
http.static.singlePageApplication.indexFile.
Common Errors
@quik/http-express has no errors.* locale keys of its own — it raises the shared quik.errors.http.* errors
from @quik/http (e.g. bad-request, unauthorized, forbidden, page-not-found, server-error) through the
same response helpers used by any HTTP engine.