Troubleshooting
Use this page when you encounter issues with Concero integration.
1) InvalidConceroRouter
Symptoms
- Destination receive call reverts immediately.
- Receiver was deployed with wrong router address.
- Redeploy receiver with correct
conceroRouterfor that chain.
2) UnauthorizedRelayerLib
Symptoms
- Destination app rejects message even though router submission exists.
relayerLibused for submission is not allowlisted in app.
- Call your admin wrapper for
_setIsRelayerLibAllowed(relayerLib, true).
3) ValidatorsConsensusNotReached or RequiredValidatorsCountUnset
Symptoms
- Delivery reaches app but verification policy fails.
- Verifier checks did not satisfy app policy.
requiredValidatorsCountunset or mismatched.
- Set expected verifier count.
- Ensure all expected verifier libs are allowlisted.
- Ensure message uses verifier set compatible with your app policy.
4) Fee payment failure (InsufficientFee)
Symptoms
conceroSendreverts on source chain.
msg.valuelower thangetMessageFee(req)when using native fee token.
- Quote fee right before sending and pass exact or higher native value.
5) InvalidValidatorConfigsCount
Symptoms
conceroSendreverts before event emission.
validatorConfigs.lengthdoes not matchvalidatorLibs.length.
- Provide one config for each verifier library.
6) Message not delivered after source event
SymptomsConceroMessageSentexists, but no destination app execution.
- Relayer module authorization or off-chain verifier/reporting issue.
- Destination app policy rejecting checks.
- Confirm relayer submitter is authorized by selected
relayerLib. - Confirm verifier module config and signer/workflow setup.
- Confirm app allowlists and verification policy.
7) Retry flow usage
Use router retries when submission is marked retryable:
retryMessageSubmission(...): retry client call path.retryMessageSubmissionWithRevalidation(...): rerun verifier checks then retry.
Both are callable by anyone after submission is marked retryable.
Debug checklist
- Confirm source
messageIdand destination chain selector. - Confirm selected
relayerLibandvalidatorLibsin source event. - Confirm destination app allowlists.
- Confirm app verification policy settings.
- Re-run with a minimal payload and known-good module set.