cosmos-sdk/errors/README.md
Alex | Interchain Labs 78bb60a377
docs: lint (#24854)
2025-06-11 10:20:44 -04:00

938 B

Errors

This package provides structured error handling for Cosmos SDK apps. It supports:

  • Custom error codes and messages
  • Stack traces when wrapping errors
  • ABCI-compatible responses for Tendermint
  • Optional gRPC status codes

Usage

Registering Errors

Define root errors with a unique code and description:

var ErrInvalidInput = errors.Register("app", 1001, "invalid input")

You can wrap errors to add context:

return errors.Wrap(ErrInvalidInput, "missing field")

Getting ABCI Error Info

To convert an error to ABCI-compatible output:

codespace, code, log := errors.ABCIInfo(err, debug)

Set debug = true to include stack traces in logs.

Suppress Duplicate Error Warnings

To prevent logging when the same error is registered twice, set:

export COSMOS_SDK_SUPPRESS_DUPLICATE_ERROR_CODE_LOG=true

Useful in tests or modules that may re-register the same error.