πŸ”’ VhyxSeal
GitHub

Error Codes

All 21 VHYX_* error codes from @vhyxseal/core. VhyxSeal errors are always typed β€” never plain strings. Every error includes a severity level, structured context, and a concrete suggestion for how to fix it.

Errors at any severity level never crash the visual layer. In production, contract errors are logged silently and the component renders without a contract. In development, DevTools surfaces them prominently alongside a suggestion.

Schema Errors

CodeSeverityCategoryDescriptionHow To Fix
VHYX_INVALID_SCHEMA_VERSIONerrorSchemaThe schema version string is not a valid semverEnsure vhyxseal field is a valid semver string e.g. "1.0.0"
VHYX_CONTRACT_VALIDATION_FAILEDerrorSchemaA contract failed structural validation β€” required fields are missing or wrong typeCheck the error context for the specific field and value that failed
VHYX_UNKNOWN_INTENTerrorSchemaThe intent string is not recognized and has no registered defaultsUse a built-in intent or call registerIntent() before using a custom intent
VHYX_INVALID_SAFETY_LEVELerrorSchemaThe safetyLevel value is not one of the five valid levelsUse one of: low | medium | high | critical | sensitive
VHYX_FIELD_TOO_LONGerrorSchemaA string field exceeds its maximum character limitShorten the field value β€” description: 500 chars, intent: 50 chars, consequence: 300 chars
VHYX_INJECTION_DETECTEDerrorSchemaA string field matched an injection pattern and was rejected by sanitizationRemove prompt injection patterns from the field value β€” use plain descriptive text

Manifest Errors

CodeSeverityCategoryDescriptionHow To Fix
VHYX_MANIFEST_GENERATION_FAILEDfatalManifestgenerateManifest() could not produce a valid manifestCheck the error context for the specific cause β€” often an invalid domain or empty contracts array
VHYX_MANIFEST_SIGNING_FAILEDerrorManifestsignManifest() failed β€” typically because no active signing key is registeredRegister a signing key with rotateKey() before calling signManifest()
VHYX_MANIFEST_VERIFICATION_FAILEDerrorManifestHMAC verification of a received manifest failed β€” signature does not match contentEnsure the manifest has not been tampered with in transit β€” re-fetch from source
VHYX_DOMAIN_MISMATCHerrorManifestThe manifest domain field does not match the domain it is being served fromEnsure the domain field in ManifestConfig matches the actual serving domain

Contract Errors

CodeSeverityCategoryDescriptionHow To Fix
VHYX_CONTRACT_DRIFT_DETECTEDwarningContractA contract fingerprint does not match its recomputed value β€” contract content may have changedRe-run defineContract() on the component to regenerate the fingerprint
VHYX_CONTRACT_STALEwarningContractA contract has not been verified within the staleness thresholdUpdate lastVerified on the contract or set verifiedBy: "manual" after reviewing
VHYX_DUPLICATE_COMPONENT_IDerrorContractTwo contracts were registered with the same component id on the same pageEnsure every component has a unique id within its SealProvider tree
VHYX_DUPLICATE_INTENTwarningContractregisterIntent() was called with an intent name that is already registeredUse a unique intent name β€” each intent can only be registered once

Relationship Errors

CodeSeverityCategoryDescriptionHow To Fix
VHYX_INVALID_RELATIONSHIPerrorRelationshipA relationship definition failed structural validation β€” required fields are missingCheck the relationship object against the schema in packages/core/src/schema/relationships.ts
VHYX_CIRCULAR_DEPENDENCYfatalRelationshipA dependency relationship forms a cycle β€” A β†’ B β†’ ABreak the circular dependency by removing one of the dependency definitions
VHYX_MISSING_COMPONENT_REFwarningRelationshipA relationship references a component id that is not present in the active registryEnsure the referenced component is mounted and registered before the relationship is resolved

Security Errors

CodeSeverityCategoryDescriptionHow To Fix
VHYX_RATE_LIMIT_EXCEEDEDerrorSecurityAn agent exceeded the rate limit defined in AgentPolicy.rateLimitsWait for the rate limit window to reset, or increase limits in AgentPolicy
VHYX_TOKEN_EXPIREDerrorSecurityAn action token was presented after its 60-second expiry windowIssue a new action token β€” tokens expire 60 seconds after issuance
VHYX_TOKEN_ALREADY_USEDerrorSecurityAn action token was presented a second time after already being consumedIssue a new single-use token for each action β€” tokens cannot be reused
VHYX_AGENT_NOT_ALLOWEDerrorSecurityThe agent identity is blocked by AgentPolicy.blockedAgents or not in allowedAgentsAdd the agent to AgentPolicy.allowedAgents or remove it from blockedAgents