Download Latest Version 1.18.0 source code.zip (2.2 MB)
Email in envelope

Get an email when there's a new version of SDK .NET

Home / 1.18.0
Name Modified Size InfoDownloads / Week
Parent folder
1.18.0 source code.tar.gz 2026-08-13 1.7 MB
1.18.0 source code.zip 2026-08-13 2.2 MB
README.md 2026-08-13 15.0 kB
Totals: 3 Items   3.9 MB 0

Notable Changes

:boom: Breaking Changes

  • Removed the unused NexusHandlerFailureException; Nexus handler failures are represented by NexusRpc.Handlers.HandlerException. The SDK-created TemporalNexusClient implementation is now internal; Nexus operation handlers continue to receive its public ITemporalNexusClient interface.
  • By default, workers now proactively validate outbound payload/memo sizes before sending: a field over the warn threshold is logged ([TMPRL1103] at WARN) but still sent, while a task completion over the error limit is failed retryably ([TMPRL1103] at ERROR) instead of sent. Previously these reached the server, which terminated the workflow or failed the activity non-retryably; failing retryably instead lets a corrected workflow or activity be redeployed and recover. Tune warn thresholds via TemporalConnectionOptions.PayloadLimits. If you use a proxy between the worker and server that alters the size of payloads (e.g. compression, encryption, external storage), it is advised that you disable size enforcement by setting DisablePayloadErrorLimit to true on the worker.
  • Activity failures now include the latest heartbeat details atomically instead of force-flushing a throttled heartbeat first. Temporal Server 1.16.0 or newer is required to guarantee those details are preserved on failure; workers warn when the server does not advertise support.

Added

  • Added experimental SDK payload converter support for values and target types that expose Temporal transfer type conversion hooks. This lets hook-aware types delegate their wire representation to the configured payload converter, preserving SDK behavior such as serialization contexts.
  • Added TemporalWorkerOptions.MaxEagerActivityReservationsPerWorkflowTask to configure the maximum number of activity slots reserved for eager execution per workflow task. Configured values must be positive; use DisableEagerActivityExecution to disable eager execution.
  • Added WorkflowEnvironment.CreateFromEnvConfigAsync for creating test workflow environments from client environment configuration.
  • Added the experimental TemporalWorkerOptions.PatchActivationCallback, allowing workers to decide whether a first non-replay Workflow.Patched call should activate a patch during rolling deployments.
  • Support standalone activities as Nexus operations. ITemporalNexusClient.StartActivityAsync backs a Nexus operation with a standalone activity (async only). Cancellation of activity-execution operations can be customized by overriding TemporalOperationHandler<TInput, TResult>.CancelActivityExecutionAsync.
  • Worker heartbeats now report the hosting .NET runtime and its version. Set the new TemporalRuntimeOptions.DisableEnvironmentInfo to omit all runtime, hosting, and platform information from heartbeats.
  • Workers are now automatically enrolled into poller autoscaling when the namespace advertises the poller_autoscaling_auto_enroll capability. This only applies to poller types left at their default (the worker set neither a fixed poller count nor a poller behavior); explicitly configured pollers are left unchanged.
  • Workers now log a [TMPRL1104] warning when a workflow task takes longer than 5 seconds. Set TEMPORAL_WORKFLOW_TASK_DURATION_WARN_SECONDS to change the threshold.

Changed

  • Nexus support for calling operations from workflows and handling workflow-backed operations with WorkflowRunOperationHandler is now generally available (GA). Standalone Nexus Operation and TemporalOperationHandler, including workflow updates and standalone activities as Nexus operations, remains experimental.
  • User metadata fields (StaticSummary, StaticDetails, CurrentDetails, Activity Summary, Timer Summary) are no longer marked as experimental.
  • Hardened read-only workflow context enforcement so queries, update validators, and patch activation callbacks cannot mutate handlers or workflow details, invoke patches, or schedule workflow work. Patch activation callbacks also cannot use workflow randomness or issue workflow commands.
  • A NexusRpc.Handlers.HandlerException thrown by a payload codec or payload converter while decoding Nexus operation input is now propagated as-is instead of being wrapped in an Internal (codec) or BadRequest (converter) handler exception. This matches the existing pass-through behavior for ApplicationFailureException and lets codecs and converters control the resulting Nexus error type and retry behavior.

Fixed

  • Workers no longer advertise a worker control task queue unless the namespace supports worker heartbeats and commands and the built-in Nexus command worker is running.
  • Local activity resolutions are now delivered to workflows as each activity completes instead of waiting for every local activity in the workflow task. This allows sequences of short local activities to make progress while a long-running local activity executes in parallel, while preserving the resolution ordering recorded in existing histories during replay.
  • Try-cancel child workflows no longer cause nondeterminism when they complete or fail after their cancellation was requested.

What's Changed

SDK Core Update

Updated from https://github.com/temporalio/sdk-rust/commit/95e97686a079dcfe6c42e3254b2f3f5e3d97408f to https://github.com/temporalio/sdk-rust/commit/78ac17e4bdaffdb54eb1c925a07d1fd40ce7b7f6

New Contributors

Full Changelog: https://github.com/temporalio/sdk-dotnet/compare/1.17.0...1.18.0

Source: README.md, updated 2026-08-13