Home / Function/ fallbackErrorHandler() — fastify Function Reference

fallbackErrorHandler() — fastify Function Reference

Architecture documentation for the fallbackErrorHandler() function in error-handler.js from the fastify codebase.

Entity Profile

Dependency Diagram

graph TD
  87b3d7c9_fba2_741d_abf0_b873e921c26f["fallbackErrorHandler()"]
  4fa9719b_0e99_aac6_5850_8ee791f4f088["error-handler.js"]
  87b3d7c9_fba2_741d_abf0_b873e921c26f -->|defined in| 4fa9719b_0e99_aac6_5850_8ee791f4f088
  10359811_0bd9_8a13_f97b_f71d10e1c7d5["handleError()"]
  10359811_0bd9_8a13_f97b_f71d10e1c7d5 -->|calls| 87b3d7c9_fba2_741d_abf0_b873e921c26f
  style 87b3d7c9_fba2_741d_abf0_b873e921c26f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

lib/error-handler.js lines 103–140

function fallbackErrorHandler (error, reply, cb) {
  const res = reply.raw
  const statusCode = reply.statusCode
  reply[kReplyHeaders]['content-type'] = reply[kReplyHeaders]['content-type'] ?? 'application/json; charset=utf-8'
  let payload
  try {
    const serializerFn = getSchemaSerializer(reply[kRouteContext], statusCode, reply[kReplyHeaders]['content-type'])
    if (serializerFn === false) {
      payload = serializeError({
        error: statusCodes[statusCode + ''],
        code: error.code,
        message: error.message,
        statusCode
      })
    } else {
      payload = serializerFn(Object.create(error, {
        error: { value: statusCodes[statusCode + ''] },
        message: { value: error.message },
        statusCode: { value: statusCode }
      }))
    }
  } catch (err) {
    if (!reply.log[kDisableRequestLogging]) {
      // error is always FST_ERR_SCH_SERIALIZATION_BUILD because this is called from route/compileSchemasForSerialization
      reply.log.error({ err, statusCode: res.statusCode }, 'The serializer for the given status code failed')
    }
    reply.code(500)
    payload = serializeError(new FST_ERR_FAILED_ERROR_SERIALIZATION(err.message, error.message))
  }

  if (typeof payload !== 'string' && !Buffer.isBuffer(payload)) {
    payload = serializeError(new FST_ERR_REP_INVALID_PAYLOAD_TYPE(typeof payload))
  }

  reply[kReplyHeaders]['content-length'] = '' + Buffer.byteLength(payload)

  cb(reply, payload)
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does fallbackErrorHandler() do?
fallbackErrorHandler() is a function in the fastify codebase, defined in lib/error-handler.js.
Where is fallbackErrorHandler() defined?
fallbackErrorHandler() is defined in lib/error-handler.js at line 103.
What calls fallbackErrorHandler()?
fallbackErrorHandler() is called by 1 function(s): handleError.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free