Update Core SDK to c57f825 - #161
Merged
Merged
Conversation
The macOS test lanes on apple#159 fail with a worker BridgeError, "missing grpc-status trailer, stream was terminated without a final status", on the worker's first get_system_info call: apple#159 https://github.com/apple/swift-temporal-sdk/actions/runs/29327782027/job/87068156954 Cause: tonic 0.14.6 made the gRPC client reject an HTTP-200 response that carries no grpc-status trailer, per the gRPC-over-HTTP/2 spec: grpc/grpc-rust#2543 sdk-core's gRPC override built success responses without that trailer and relied on older tonic inferring OK from a trailerless 200. The pinned db65dd9 core predates the fix, so once it is rebuilt against tonic 0.14.6+ every macOS worker test fails on connect. Fix: temporalio/sdk-rust#1257 appends a grpc-status: 0 trailer to those override responses. This moves the submodule from db65dd9 to c57f825 (the #1257 merge commit) to pick it up: temporalio/sdk-rust#1257 https://github.com/temporalio/sdk-core/blob/c57f825ff4a312d084773498fceeca9eef853607/crates/client/src/callback_based.rs#L107-L112 Verified locally: built the c-bridge staticlib from c57f825 and the worker connects and runs a workflow end-to-end (previously it failed on the first get_system_info). Build-input bump only. Once the artifacts workflow reruns and publishes the new release, apple#159 bumps Package.swift's url and checksum to it.
FranzBusch
approved these changes
Jul 15, 2026
2 tasks
FranzBusch
pushed a commit
that referenced
this pull request
Jul 15, 2026
### Motivation The `build-temporal-core-artifacts.yml` run against #161's core fails on the macOS and both musl Linux jobs ([failing run](https://github.com/apple/swift-temporal-sdk/actions/runs/29413263280)): ``` error[E0463]: can't find crate for `core` ``` As of [c57f825](https://github.com/temporalio/sdk-core/blob/c57f825ff4a312d084773498fceeca9eef853607), sdk-core pins its toolchain to 1.94 via [`rust-toolchain.toml`](https://github.com/temporalio/sdk-core/blob/c57f825ff4a312d084773498fceeca9eef853607/rust-toolchain.toml#L2). The workflow installs 1.88 and adds the build targets to it, but builds under the pin (1.94), which has no `std` for those targets. ### Modifications Set `RUST_VERSION` to `1.94` so the target adds and the build share a toolchain. ### Result Rerunning the workflow builds the macOS and musl jobs cleanly and publishes a release from c57f825, which #159 can then consume. ### Test plan - [x] Built the c57f825 core with 1.94 for `x86_64-apple-darwin` (the failing slice) and `aarch64-apple-darwin`, and ran a worker connect + workflow test on the arm64 build end-to-end which passes. - [ ] musl/iOS slices and the full matrix: the workflow rerun and #159's CI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
The macOS test lanes on #159 fail with a worker
BridgeError— "missing grpc-status trailer, stream was terminated without a final status" on the worker's firstget_system_infocall:The cause is dependency drift. tonic 0.14.6 (grpc/grpc-rust#2543) made the gRPC client reject an HTTP-200 response that carries no grpc-status trailer, per the gRPC-over-HTTP/2 spec. sdk-core's gRPC override builds success responses without that trailer and relied on older tonic inferring OK from a trailerless 200. Our pinned core
db65dd9predates the upstream fix, so once it is rebuilt against tonic 0.14.6+ the worker fails on connect.Modifications
Move the
dependencies/sdk-coresubmodule fromdb65dd9toc57f825, the merge commit of temporalio/sdk-core#1257, which appends agrpc-status: 0trailer to those override responses:Result
Once
build-temporal-core-artifacts.ymlreruns against the bumped submodule and publishes a new release, the macOS worker lanes should pass. A follow-up on #159 then bumpsPackage.swift'surl+checksum(bothBridgeandBridgeDarwin) to that release.Test Plan
Verified locally: built the sdk-core c-bridge staticlib from
c57f825(Rust 1.88, tonic 0.14.6), wrapped it into an xcframework, and ran a worker connect + workflow-execution test. It passes end-to-end, where the pre-fix core failed on the firstget_system_info. Full CI validation happens when the artifacts workflow republishes and #159 consumes the new release.Note
This bumps the Core SDK only; the artifact rebuild and consumer bump follow. Once this is merged:
build-temporal-core-artifacts.ymlviaworkflow_dispatchto publish a release built fromc57f825(@FranzBusch)Package.swift'surl+checksum(bothBridgeandBridgeDarwin) to the new release (@RalucaP)Separately might be worth a follow-up: the artifacts build doesn't pin its Rust dependencies (no committed
Cargo.lock/--locked), which is what let this drift on a rebuild of the same commit, pinning would prevent a recurrence.