Skip to content

Add structured error metadata for validation failures#145

Open
GBOYEE wants to merge 1 commit into
Adamantine-guild:mainfrom
GBOYEE:fix/structured-error-metadata-129
Open

Add structured error metadata for validation failures#145
GBOYEE wants to merge 1 commit into
Adamantine-guild:mainfrom
GBOYEE:fix/structured-error-metadata-129

Conversation

@GBOYEE

@GBOYEE GBOYEE commented Jun 29, 2026

Copy link
Copy Markdown

Fixes #129

What changed

Added structured field, reason, and valueType metadata to all GuildPassError throws across:

  • src/utils/validation.tsvalidateAddress, validateGuildId, validateResourceId, validateRoleId
  • src/config/sdkConfig.tsvalidateConfig (apiUrl, timeoutMs, cacheTtl, sendClientMetadata, clientName, clientVersion, retry config, fetch transport)

Why

Consumers currently have to parse human-readable error messages to determine which field failed. The new details object provides a machine-readable contract:

try {
  validateAddress('');
} catch (e) {
  // e.details = { field: 'address', reason: 'required' }
}

Tests

  • tests/validation-metadata.test.ts — covers all validation helpers
  • tests/config-validation-metadata.test.ts — covers config validation paths
  • Verified: no sensitive values (apiKey, secrets) exposed in error metadata

Adds field/reason/valueType metadata to all GuildPassError throws in
validation.ts and sdkConfig.ts. Consumers can now identify which field
failed without parsing human-readable message strings.

Fixes Adamantine-guild#129
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Structured Error Metadata for Validation Failures

1 participant