http: preserve permanent processing failures while recording attempt outcomes
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 9
- Forks
- 0
- Avg merge
- 3h 3m
- Merged PRs (30d)
- 509
Description
Origin: PR #1924 exact-head independent review.
Evidence
The response-limit and permanent expect processing wrappers attach structured attempt evidence through httpResponseFailure, but on retryable HTTP statuses (for example GET 503 with valid JSON exceeding maxListElements) the status classifier can replace the prior permanent LimitExceeded/evaluation classification with retry-permitted Upstream. Local and Temporal then retry a failure that previously stopped immediately.
Review evidence: PR #1924 final-head Oracle review (head 3f4973e73beeb17982e6716da73fc0a690a3abe9).
Acceptance criteria
- Preserve denied retry permission for permanent response processing/expect evaluation failures while retaining effect/result/contract evidence.
- Keep unknown/reconciliation behavior for ambiguous non-opted-in mutations.
- Do not change transient behavior for ordinary unmet expectations or JSON decode failures.
- Shared conformance cases prove local and Temporal both deliver once for GET 503 plus response-limit and permanent expectation-evaluation failures.
- Reapply the valuable ambiguous-mutation fixes from #1924 and pass protobuf compatibility/generation checks.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the httpResponseFailure evidence and the status classifier, then review PR #1924 and its final-head Oracle review. Use the shared conformance cases to verify local and Temporal deliver once for GET 503 response-limit and permanent expectation-evaluation failures, while preserving ambiguous-mutation behavior and passing protobuf compatibility and generation checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100