docs/Reference/Warnings.md
Table of contents
Fastify uses the Node.js warning event
API to notify users of deprecated features and coding mistakes. Fastify's
warnings are recognizable by the FSTWRN and FSTDEP prefixes. When
encountering such a warning, it is highly recommended to determine the cause
using the --trace-warnings
and --trace-deprecation
flags. These produce stack traces pointing to where the issue occurs in the
application's code. Issues opened about warnings without this information will
be closed.
Warnings can also be disabled, though it is not recommended. If necessary, use one of the following methods:
NODE_NO_WARNINGS environment variable to 1--no-warnings flag to the node processno-warnings in the NODE_OPTIONS environment variableFor more information on disabling warnings, see Node's documentation.
Disabling warnings is not recommended and may cause unexpected behavior.
| Code | Description | How to solve | Discussion |
|---|---|---|---|
| <a id="FSTWRN001">FSTWRN001</a> | The specified schema for a route is missing. This may indicate the schema is not well specified. | Check the schema for the route. | #4647 |
| <a id="FSTWRN003">FSTWRN003</a> | The %s plugin mixes async and callback styles, which may lead to unhandled rejections. | Do not mix async and callback style. | #6011 |
| <a id="FSTWRN004">FSTWRN004</a> | An errorHandler is being overridden in the same scope, which can lead to subtle bugs. | Avoid calling setErrorHandler more than once in the same scope. For more information, see Server documentation. | #6104 |
Deprecation codes are supported by the Node.js CLI options:
| Code | Description | How to solve | Discussion |
|---|---|---|---|
| <a id="FSTDEP022">FSTDEP022</a> | You are trying to access the deprecated router options on top option properties. | Use options.routerOptions. | #5985 |
| <a id="FSTDEP023">FSTDEP023</a> | disableRequestLogging top-level option is deprecated. | Pass a LogController instance via the logController option with disableRequestLogging in its constructor instead. | |
| <a id="FSTDEP024">FSTDEP024</a> | requestIdLogLabel top-level option is deprecated. | Pass a LogController instance via the logController option with requestIdLogLabel in its constructor instead. |