Skip to content

experiment: reconcile ambiguous Hermes request_promise 5xx - #4

Draft
kapunakap wants to merge 5 commits into
fix/reset-hermes-failure-count-on-successfrom
experiment/reconcile-ambiguous-hermes-5xx
Draft

kapunakap wants to merge 5 commits into
fix/reset-hermes-failure-count-on-successfrom
experiment/reconcile-ambiguous-hermes-5xx

Conversation

@kapunakap

Copy link
Copy Markdown
Owner

What

Prototype a non-replay recovery path for ambiguous Hermes request_promise HTTP 5xx responses.

Instead of replaying the POST, the provider performs one read-only GetProviderData check while the serialized Hermes queue entry is still active. It only treats the request as committed when provider identity, provider channel, chain, hashlock and fee all exactly match the request. Otherwise the original error continues through the existing failure counter.

The HTTP caller now preserves HTTP status for both recognized and unrecognized Hermes error bodies so generic 5xx can be distinguished from protocol-level errors.

Safety

Open protocol question

Before proposing this upstream as production behavior, Hermes maintainers should confirm that data/provider/{providerID}.LatestPromise is sufficiently read-after-write consistent after an ambiguous request_promise 5xx, and that an exact latest provider-promise hashlock match is a valid commit witness.

Related: mysteriumnetwork#6218

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.

1 participant