cosmos-sdk/errors
dependabot[bot] d27ef33a0f
build(deps): Bump google.golang.org/grpc from 1.72.1 to 1.72.2 in /tools/benchmark (#24783)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: aljo242 <alex@interchainlabs.io>
2025-05-28 16:22:33 +00:00
..
abci_test.go chore: use errors v1 (#23901) 2025-03-05 13:09:51 -05:00
abci.go chore: use errors v1 (#23901) 2025-03-05 13:09:51 -05:00
CHANGELOG.md fix: do not panic if registering the same error to global registry (#24568) 2025-05-08 16:59:45 +00:00
doc.go chore: use errors v1 (#23901) 2025-03-05 13:09:51 -05:00
errors_test.go fix: do not panic if registering the same error to global registry (#24568) 2025-05-08 16:59:45 +00:00
errors.go fix: do not panic if registering the same error to global registry (#24568) 2025-05-08 16:59:45 +00:00
go.mod build(deps): Bump google.golang.org/grpc from 1.72.1 to 1.72.2 in /tools/benchmark (#24783) 2025-05-28 16:22:33 +00:00
go.sum build(deps): Bump google.golang.org/grpc from 1.72.1 to 1.72.2 in /tools/benchmark (#24783) 2025-05-28 16:22:33 +00:00
handle.go chore: use errors v1 (#23901) 2025-03-05 13:09:51 -05:00
README.md fix: do not panic if registering the same error to global registry (#24568) 2025-05-08 16:59:45 +00:00
stacktrace_test.go chore: use errors v1 (#23901) 2025-03-05 13:09:51 -05:00
stacktrace.go chore: use errors v1 (#23901) 2025-03-05 13:09:51 -05:00

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.