Back to Fastify

Warnings

docs/Reference/Warnings.md

5.12.24.8 KB
Original Source
<h1 align="center">Fastify</h1>

Table of contents

Warnings

Warnings In Fastify

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:

  • Set the NODE_NO_WARNINGS environment variable to 1
  • Pass the --no-warnings flag to the node process
  • Set no-warnings in the NODE_OPTIONS environment variable
  • Pass --disable-warning=FSTWRN004 to disable a specific warning

For more information on disabling warnings, see Node's documentation.

Disabling warnings is not recommended and may cause unexpected behavior.

Fastify Warning Codes

CodeDescriptionHow to solveDiscussion
<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

Fastify Security Codes

CodeDescriptionHow to solveDiscussion
<a id="FSTSEC001">FSTSEC001</a>A RegExp Content-Type is used that may be vulnerable to a CORS bypass, because it does not anchor the essence MIME type.Start the RegExp with ^ or include ;? so the essence MIME type is detected correctly.#4450
<a id="FSTSEC002">FSTSEC002</a>A headers schema references an external $ref (a schema registered with addSchema) that is not reached by header case normalization. Header names in the referenced schema keep their original case and do not match the lowercased request headers, so case-insensitive assertions such as required and dependencies may not apply.Inline the header schema instead of referencing it with an external $ref.-

Fastify Deprecation Codes

Deprecation codes are supported by the Node.js CLI options:

CodeDescriptionHow to solveDiscussion
<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.
<a id="FSTDEP025">FSTDEP025</a>Calling addHttpMethod for an existing HTTP method without { overrideExisting: true } is deprecated.Pass { overrideExisting: true } to make the override explicit.#6879