Skip to content

fix(pic): read HTTPS outcalls made with PUT, DELETE and PATCH (0.23 backport) - #322

Merged
alexandru-uta merged 1 commit into
release/0.23from
backport/0.23-https-outcall-methods
Oct 23, 2026
Merged

alexandru-uta merged 1 commit into
release/0.23from
backport/0.23-https-outcall-methods

Conversation

@alexandru-uta

Copy link
Copy Markdown
Collaborator

Backport of #320 to the 0.23 release line, for a 0.23.1 patch release.

PocketIC reports a pending HTTPS outcall's method as GET, POST, HEAD, PUT, DELETE or PATCH, but getPendingHttpsOutcalls only decoded the first three and threw Unknown canister HTTP method: PUT for the rest, so a test could not answer a canister's PUT, DELETE or PATCH request. CanisterHttpMethod and its decoder now cover all six methods; the API is otherwise unchanged from 0.23.0.

The test canister gains http_request_status, which makes a non-replicated outcall with a given method (the IC allows PUT, DELETE and PATCH only there), and a new spec reads and answers one outcall per method. PocketIC 14, which this line pins, makes no PATCH outcalls, so the spec covers GET, HEAD, POST, PUT and DELETE; with the decoder change reverted, PUT and DELETE fail with the decode error. PATCH passes against PocketIC 15.

0.23.1 should be published under its own dist-tag so it does not replace 0.25.0 as latest.

🤖 Generated with Claude Code

Backport to the 0.23 release line.

PocketIC reports a pending HTTPS outcall's method as GET, POST, HEAD,
PUT, DELETE or PATCH, but getPendingHttpsOutcalls only decoded the first
three and threw "Unknown canister HTTP method" for the rest. A test of a
canister that sends a PUT, DELETE or PATCH request could not answer it.

The test canister gains a method that makes a non-replicated outcall
with a given method (the IC allows PUT, DELETE and PATCH only there).
The new test reads and answers one outcall per method; before the fix,
the PUT and DELETE cases failed with the decode error. PocketIC 14,
which this release line pins, makes no PATCH outcalls, so PATCH is
covered against PocketIC 15 servers only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@alexandru-uta
alexandru-uta marked this pull request as ready for review October 23, 2026 13:20
@alexandru-uta
alexandru-uta requested a review from a team as a code owner October 23, 2026 13:20
@alexandru-uta
alexandru-uta merged commit 8ab6173 into release/0.23 Oct 23, 2026
10 checks passed
@alexandru-uta
alexandru-uta deleted the backport/0.23-https-outcall-methods branch October 23, 2026 13:20
alexandru-uta added a commit that referenced this pull request Oct 23, 2026
Releases the PUT, DELETE and PATCH outcall fix (#322) on the 0.23 line
as 0.23.1.

The release workflow on this branch publishes to npm under the
`release-0.23` tag instead of `latest`, does not mark the GitHub release
as latest, and publishes only the v0.23 docs, so 0.25.0 stays the latest
release.

After merging this PR, tag the merge commit with:
```shell
git tag 0.23.1
git push origin 0.23.1
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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