RSS

Dapr v1.15 is now available

We’re happy to announce the release of Dapr 1.15! πŸš€ πŸŽ‰ 🎈

We would like to thank you all for your patience and also give our thanks to all the new and existing contributors who helped make this release happen.

If you’re new to Dapr, visit the getting started page and familiarize yourself with Dapr.

Docs have been updated with all the new features and changes of this release. To get started with new capabilities introduced in this release, go to the Concepts and the Developing applications.

Please read the Breaking Changes carefully. If you’re experiencing any issues, please report them on Discord. The following core maintainers are available to help you: @joshvanl, @yaron2, @cassie1coyle.

Note: This release contains a few Breaking Changes.

See this section on upgrading Dapr to version 1.15.

Acknowledgements

Thanks to everyone who made this release possible!

@adrianhr91, @alicejgibbons, @antontroshin, @aqeelat, @arslanmusta, @artur-ciocanu, @arturotrenard, @artursouza, @bhagya05, @cicoyle, @daixiang0, @diegodocs, @divzi-p, @Druid-of-Luhn, @elena-kolevska, @emsearcy, @evhen14, @famarting, @filintod, @GowthamHN, @hhunter-ms, @humandigital-ruud, @ItalyPaleAle, @Jeroen-VdB, @jev-e, @JoshVanL, @jseguillon, @LeonMatthesKDAB, @lor1113, @luigirende, @m3nax, @marcduiker, @mikeee, @MregXN, @msfussell, @olitomlinson, @passuied, @paule96, @paulyuk, @qustavo, @RafaelJCamara, @rochabr, @salaboy, @shubham1172, @Shubhdeep02, @sicoyle, @siri-varma, @SpiffyEight77, @Taction, @ThomasVitale, @tomhreb, @vil02, @WhitWaldo, @yaron2, @ytimocin, @znd4

Special thanks go to Rob J - You know who you are!

Highlights

These are the v1.15 release highlights:

Dapr Workflow (stable)

Dapr workflow makes it easy to write long running stateful applications using durable execution. You can try out Dapr workflow with the Quickstart Samples. The ability to author and run workflows is now stable. This includes the Dapr runtime along with the Dapr .NET, Java, Python, Go and Javascript SDKs.

The workflow runtime engine has undergone a major overwrite to achieve substantial performance and scalability improvements, as well as reliability and stability traits that are required to run mission critical apps at massive scale. Workflows now support dynamically scaling your Workflow applications from 0 to many replicas, whilst maintaining durability of your tasks at runtime.

Dapr Actors

The Actor runtime engine has had a rewrite in its implementation. Although no changes have been made to the API surface of Actors, this overhaul significantly improves the reliability of handling Actors at scale and in dynamically scaling environments. This work has also been instrumental in making the, now stable, Workflows engine dynamic and durable.

The Actor runtime implementation is now capable of being extended upon to implement new highly requested Actor APIs, or even targeting new Actor targets beyond your app and Workflows in future.

Scheduler Service (stable)

The Scheduler service is the control plane service used to schedule jobs, running in self-hosted mode or on Kubernetes. It is installed when using the Dapr CLI and is the service responsible for managing scheduled jobs. The Scheduler service is now stable

  • Note: Prior to Dapr v1.15, actor reminders were run using the Placement service by default. Now, by default in v1.15, the SchedulerReminders feature flag is set to true, and all new actor reminders you create are run using the Scheduler service. When you deploy Dapr v1.15, any existing actor reminders are migrated from the Placement service to the Scheduler service as a one time operation for each actor type. You can prevent this migration by setting the SchedulerReminders flag to false in the application configuration file for the actor type. See Scheduler Actor Reminders

Conversation API (alpha)

A new Conversation API (alpha) reduces the complexity of interacting with large language models (LLM) at scale, providing a consistent API to talk to LLM providers. With the Conversation API, you can:

  • Send prompt and responses LLMs including Anthropic, AWS Bedrock, Hugging Face, Mistral, OpenAI and DeepSeek
  • Enable critical performance and security functionality, including prompt caching to reduce the number of calls and PII obfuscation to scrub PII data.

The Go, .NET, and Rust SDKs have the conversation API implemented as part of this release. As with all APIs, Dapr provides observability by issuing metrics for your LLM interactions.

Learn more about the Conversation API, or dive into a .NET or Go Quickstart.

SDK Improvements

.NET SDK

The .NET SDK added support for the Jobs, Conversation and streaming pub/sub APIs.

  • Support for services targeting .NET 9.

Python SDK

The Python SDK added support for streaming pub/sub APIs and the Conversation API.

  • Added Mock actors for unit testing.
  • The Dapr Client workflow functions were deprecated in favor of the DaprWorkflowClient.
  • The default timeout for wait_for_orchestration_start and wait_for_orchestration_completion was changed from 60 seconds to no timeout
  • Support for Python 3.8 was removed and support for Python 3.13 was added.

Java SDK

The Java SDK added a Spring Boot integration, including Spring Boot Starters for interacting with the Dapr APIs and testing capabilities using Testcontainers. The Spring Boot integration now supports:

  • DaprClient and DaprWorkflowClient bean injection
  • Spring Data CrudRepository support using Dapr StateStore + Bindings
  • Spring Messaging support using Dapr PubSub APIs
  • Dapr Workflows support with automatic Workflows and Activities registration and support for bean injection
  • Testcontainers integration providing DaprContainer and PlacementServiceContainer

Javascript SDK

The JavaScript SDK added support for the Pause, Resume and SetStatus methods on the Workflow API. Progress is being made to improve the JavaScript SDK documentation.

Go SDK

  • The Go SDK added support for the Conversation API.
  • Dead Letter Topic support for subscriptions is now available.
  • Workflow authoring and management with this SDK are ‘stable’.
    • Retry policies have been added.
    • Custom statuses on workflows can be set.
    • Purge options are now supported.
    • An ID re-use policy can now be applied.
  • Streaming subscriptions now re-connect automatically on unknown/unavailable grpc connection statuses.

Rust SDK (alpha)

The Rust SDK added support for the Conversation API support. Progress is being made in other areas towards a refactor for beta/stable state.

CLI and Env Vars

Components

New components

The following new components have been added

Component improvements

Kubernetes improvements

List of issues in this release

Dapr Runtime

  • ADDED Status filter for service invocation resiliency 6683
  • FIXED W3C Correlation of Event Publishing 7275
  • ADDED api: add Conversation API 7858
  • FIXED Exception thrown during Job schedule API call 7897
  • ADDED Actor service failure detection by Placement Service is now configurable (docs) 7955
  • ADDED Dapr Actor Processing in FIFO 7956
  • ADDED securityContext/runAsGroup and securityContext/runAsUser as sidecar injector options. 7958
  • BREAKING The scheduler is now used by default for actor reminders. Migration is required from an existing statestore-backed reminder system. 8045
  • FIXED Update Dapr Chart image.name README with current values 8051
  • FIXED Update the default value of app.kubernetes.io/managed-by 8052
  • FIXED Add apiVersion and kind to volumeClaimTemplates 8067
  • FIXED Runtime outputs memory address on startup for metrics spec 8169
  • ADDED Enable PII scrubbing for LLM inputs/outputs 8189
  • FIXED Moved helm priority class declaration in the right position of dapr_placement_statefulset.yaml manifests 8205
  • ADDED Provide ability to configure dapr grpc ports through dapr pod annotations. 8227
  • ADDED sftp component register 8263
  • FIXED Expose localhost on scheduler locally. 8412
  • ADDED Daprd Env Variables from Secrets 8180
  • FIXED Fixes placement service dissemination failure on stream hang 8326
  • ADDED Exposed raft and placement service leadership status as metrics (dapr_placement_leader_status and dapr_placement_raft_leader_status)8245
  • FIXED Fix Scheduler readOnlyRootFilesystem: true 8465
  • ADDED Otel tracing support to add headers for token authentication 8143

Dapr CLI

  • UPDATED Update CLI to runtime 1.14 and Go 1.22 1440
  • FIXED fix: population of the schedulerhostaddress in self-hosted mode 1475
  • UPDATED Pin go to 1.23.5 1477

Components

  • FIXED Properties and System properties missing when subscribing to Azure Events pubsub 2530
  • ADDED Sftp binding 3206
  • FIXED fatal error: unlock of unlocked mutex 3443
  • FIXED snssqs: fix consumer starvation 3479
  • FIXED Error net/http: invalid header field value for "__key\ in Dapr version 1.13.5 on Windows machine 3503
  • FIXED EventHub component delivers out of order messages (pubsub, binding) 3568
  • FIXED Event Hub binding should allow transforming ALL custom properties as headers, not just iot-hub systemproperties 3570
  • FIXED Azure Event Hub binding stops working if storage act returns 503 3573
  • FIXED [Mongo] - Serialization issues with Transaction upsert operation 3575
  • FIXED Fix Azure blob storage metadata header value sanitization 3581
  • FIXED Pulsar key_shared functionality. 3601
  • UPDATED Promoted AWS Secrets Manager secret store component to Beta 3504

.NET SDK

  • ADDED [actors] Incremental source generator for actors 1334
  • ADDED [client] Optional DI lifecycle change 1408
  • ADDED [conversation] Add .NET client for LLM Conversations support 1382
  • ADDED [docs] Add Jobs API .NET client example to doc 1322
  • ADDED [examples] Added workflow sample: Task chaining 1387
  • ADDED [examples] Added workflow sample: Monitor 1388
  • ADDED [examples] Added workflow example: External interaction 1389
  • ADDED [examples] Added workflow sample: Async operations 1394
  • ADDED [examples] Added workflow sample: Sub-workflows 1395
  • ADDED [examples] Added workflow example: Fan out/fan in 1396
  • ADDED [jobs] Add .NET client for Dapr Jobs API 1384
  • ADDED [pubsub] Add .NET client for pub/sub support - streaming subscriptions 1381
  • ADDED [invoke] Adding instance-based CreateInvokableHttpClient 1319
  • ADDED [misc] Support .NET 9 1404
  • ADDED [misc] Support gRPC richer error model 1436
  • ADDED [state] Support for saving and retrieving state as byte arrays without serialization to and from JSON 906
  • ADDED [state] Added methods in state API supports for saving and reading binary data 1116
  • ADDED [tests] Validate method invocation with extraneous headers 1355
  • ADDED [tests] Provide the ability to Mock WorkflowActivityContext 1358
  • ADDED [tests] Added unit test to Secrets API test suite 1347
  • ADDED [workflow] Added option to override GrpcChannelOptions when adding DaprWorkflow (#7218) 1244
  • ADDED [workflow] Adds workflow replay-safe logger 1434
  • FIXED [actors] Multiple methods per interface with JSON serialization doesnΒ΄t work 1343
  • FIXED [actors] Actor source generator generates invalid code for generic interfaces 1419
  • FIXED [actors] Actor reminders should return null if not registered 1468
  • FIXED [client] DI registration not completing as expected 1386
  • FIXED [client] Prioritize retrieval of environment variables from IConfiguration instead of directly 1363
  • ADDED [client] Additional lifecycle registration changes 1410
  • FIXED [actors] Actor reminders should return null if not registered 1468
  • FIXED [config] BREAKING CHANGE Preserve comparer of the original dictionary 935
  • FIXED [config] DaprConfigurationStoreProvider not applying case-insensitive configuration updates correctly. 934
  • FIXED [conversation] Conversation builder consistency changes 1423
  • FIXED [conversation] Conversation SDK updated to reflect changes to protos 1469
  • FIXED [crypto] Crypto ReadOnlyMemory decryption times out 1443
  • FIXED [jobs] Single-invocation point-in-time job fails to register 1455
  • FIXED [jobs] Invoked job not populating payload from inbound request 1457
  • FIXED [jobs] Fix for GetJobAsync deserialization issue 1461
  • FIXED [jobs] Fix for duration-based scheduling being incorrected formatted 1462
  • FIXED [jobs] Fix Jobs mapping handler to properly assign cancellation tokens per-request instead of globally 1474
  • FIXED [misc] Remove unused using statements. 1313
  • FIXED [misc] Remove unused variables 1314
  • FIXED [misc] Removes floating classes and introduces Dapr.Common project 1365
  • FIXED [misc] Fixed security advisory updates across dependencies (transitive and direct) 1366
  • FIXED [pubsub] Fixes + unit tests for streaming PubSub implementation 1415
  • FIXED [pubsub] NullReferenceException when trying to sub with streaming subscriptions 1412
  • FIXED [workflow] Bug during workflow client registration 1385
  • FIXED [workflow] Added missing workflow status branch 1348
  • DOCS [docs] Updating actor serialization documentation 1371
  • DOCS [docs] Document That Users Can Self-Assign Issues 1149
  • DOCS [docs] Improvement of the dotnet-contributing files 1330
  • DOCS [docs] Updated prereqs to specify .NET 6 and .NET 8 in v1.15 1398
  • DOCS [docs] Updating Dapr .NET SDK documentation 1409
  • DOCS [docs] Update Workflow to stable 1418
  • DOCS [examples] Modify workflow sample README 1210
  • DOCS [examples] Simplfying Crypto example 1442
  • UPDATED [misc] Consolidated version of nugets used in test project 1315
  • UPDATED [misc] Updated protos to latest in dapr/dapr 1420
  • UPDATED [misc] Extracted Protos out to common project 1367
  • UPDATED [misc] Migrate from FluentAssertions 1450

Go SDK

  • FIXED Fixed superfluous bug 619
  • BREAKING Remove obsolete workflow methods 634
  • ADDED Conversation API support 645
  • UPDATED Update Dependencies - fix sec vulnerability 658
  • UPDATED chore: bump validation dapr runtime to 1.15.0-rc.2 667
  • UPDATED release: version bump and tidy 673
  • UPDATED Bump gover, tag, x/deps and dapr 674
  • UPDATED ci: include pre-release label for RCs 675
  • UPDATED Adding the name of the failing activity for more detail 678

Java SDK

  • BREAKING Drop Spring Boot 2.x support as it is no longer supported by the spring community 1039
  • ADDED Support Spring Boot baseline of 3.2.x 1050
  • ADDED Include metadata on actor method invocation to support headers. 1071
  • ADDED Streaming Subscription Support 1072
  • ADDED Spring Boot enhancements, Spring Data Repository, Testcontainers 1089
  • ADDED Dapr Container default wait strategy based on healthz/outbound 1105
  • ADDED Configuration overrides for DaprWorkflowClient and WorkflowRuntimeBuilder 1113
  • FIXED handling of timeout in waitForSidecar 1145

Python SDK

  • ADDED Implemented bidirectional streaming for pubsub 735
  • ADDED Added support for the Dapr Conversation API 787
  • ADDED Mock actors for unit testing actor methods 750
  • UPDATED Deprecated Dapr Client workflows API functions in favour of DaprWorkflowClient 749
  • FIXED Fixes missing docker-compose in examples 736
  • FIXED Makes data argument optional on transactional delete 752
  • FIXED Fixed not being able to save new keys with try_add_state 756
  • ADDED Added an integration test for http service invocation 758
  • UPDATED Removed support for Python 3.8 (EOL) and added support for Python 3.13 763
  • FIXED When calling an actor method results in an InternalDaprError being raised, the exception details are properly returned instead of a json serialisation error 765
  • UPDATED Removes default timeout for wait_for_orchestration_start and wait_for_orchestration_completion 784

Rust SDK

  • UPDATED Remove tonic-build and protoc dependency 205
  • UPDATED refactor!: dapr no longer requires protoc or tonic_build 206
  • UPDATED GH Workflows to more modern versions 207
  • UPDATED chore(deps): upgrade deps and regen protos 214
  • ADDED Docs validation workflow 219
  • UPDATED chore(release): v0.16.0-rc.0 221
  • ADDED save_state function lacks metadata argument, resulting in states being stored as serialized strings instead of objects. 226
  • ADDED feat: conversation api initial implementation 234
  • UPDATED fix(ci): fix installer bundle creation logic 239
  • UPDATED Client dependencies in the RUST SDK. 240
  • UPDATED How to configure the client in the Rust SDK. 241
  • UPDATED Specify that the client is connecting to the gRPC server in the Rust SDK. 242
  • UPDATED Update Dapr Rust docs 245
  • UPDATED refactor state methods 246
  • UPDATED chore: bump rc versions 247
  • UPDATED feat: add proto check and make directives 248
  • UPDATED chore: remove macro dep from main crate 249
  • UPDATED docs: clarify and fix mistakes 251
  • UPDATED chore: bump protos to 1.15.0-rc.1 tag 252
  • UPDATED Return Result when creating DaprHttpServer 253
  • UPDATED release: bump 256
  • UPDATED Add fallback handler to axum Router 258

JavaScript SDK

  • ADDED Added pause/resume methods in DaprWorkflowClient 661
  • FIXED PubSub with large message does not trigger subscriber 562
  • UPDATED workflows: update durabletask fork and finish set custom status 647
  • FIXED fix current packages with vulnerability 648
  • FIXED Fix README to be consistent 649
  • FIXED docs: fix contributing to sdk docs 651
  • FIXED docs: fix path for getting started documentation 652
  • UPDATED [docs] Remove beta from JS SDK workflow docs 654
  • UPDATED chore(deps): Bump golang.org/x/net from 0.17.0 to 0.33.0 in /examples/grpc/proxying/server 656

Documentation

  • RESOLVED Resiliency - Service Invocation allow to ignore resiliency policy based on response http status code 3859
  • RESOLVED [Workflow] Docs enhancements with stable release 3870
  • RESOLVED Authenticate components to services using Dapr SPIFFE identity X.509 certificate 4130
  • RESOLVED [Workflow] Add examples for reuse ID policy 4237
  • RESOLVED Resiliency: Action based on response HTTP status code for retry 4254
  • RESOLVED Propagate trace inforation from incoming headers 4277
  • RESOLVED Fixed yaml syntax for Subscription v2alpha1 spec example 4335
  • RESOLVED Updates to new value 4372
  • RESOLVED Conversation API docs 4374
  • RESOLVED Scheduler service stable 4375
  • RESOLVED Added .NET example to jobs HowTo page 4385
  • RESOLVED Python SDK docs are outdated 4410
  • RESOLVED Updates documentation for circuit breaker with possible values and adds examples 4413
  • RESOLVED Add Pulsar metadata for receiver queue size 4416
  • RESOLVED Sftp Binding Component Docs 4418
  • RESOLVED [Conversation API] initial docs setup 4419
  • RESOLVED Examples(code snippets) needed for subscription streaming 4424
  • RESOLVED Add metadata option for event hubs in-order delivery 4432
  • RESOLVED Fix Observability YouTube URL timestamp 4435
  • RESOLVED Document deprecation of Workflows API Alpha1 in breaking changes 4436
  • RESOLVED Update docs for scheduler ephemeral storage 4438
  • RESOLVED v1.15 docs release endgame 4445
  • RESOLVED Updating valid .NET SDK targets for Quickstart docs 4447
  • RESOLVED [EventHub pubsub/binding] Add in order message delivery metadata 4448
  • RESOLVED Jobs/scheduler is stable 4449
  • RESOLVED Update docs for Scheduler service going stable 4452
  • RESOLVED [Pulsar] Add metadata for pub/sub component 4453
  • RESOLVED Workflow as stable 4455
  • RESOLVED docs(aws): revamp aws docs + iam role anywhere profile 4456
  • RESOLVED [Conversation] Finish how-to 4462
  • RESOLVED New error codes topic 4465
  • RESOLVED Upmerge 12-16 4466
  • RESOLVED [Endgame] Prep v1.14 branch for v1.15 release 4467
  • RESOLVED [Endgame] Prep v1.15 branch for v1.15 release 4468
  • RESOLVED Upmerge 12/18: 1.15 -> 1.16 4472
  • RESOLVED [Endgame] Update config.toml for 1.16 4475
  • RESOLVED [1.15] First submodule pull of 2025 🎊 4483
  • RESOLVED add python to streaming subscriptions 4485
  • RESOLVED Quick update for JS submodule 4486
  • RESOLVED Conversation quickstart doc 4487
  • RESOLVED [Conversation] Beef up overview 4489
  • RESOLVED Conversation quickstart 4493
  • RESOLVED [Conversation overview] Removing old paragraph 4494
  • RESOLVED Update error codes reference 4497
  • RESOLVED Added .NET jobs example 4499
  • RESOLVED Moved technical details of Jobs implementation out of How To docs 4500
  • RESOLVED Actors do not support gRPC today 4501

Quickstarts

  • RESOLVED Quickstarts for conversation API 1099
  • ADDED Go Conversation API quickstart 1102
  • ADDED .NET Conversation API quickstart 1103
  • RESOLVED HTTP Java Conversation API quickstart 1104
  • ADDED HTTP .NET Conversation API quickstart 1105
  • ADDED HTTP Go Conversation API quickstart 1106
  • ADDED HTTP JS Conversation API quickstart 1107
  • ADDED HTTP Python Conversation API quickstart 1108
  • RESOLVED Quickstarts for Jobs API 1109
  • RESOLVED HTTP Python Jobs API Quickstart 1110
  • RESOLVED HTTP Java Jobs API Quickstart 1111
  • ADDED HTTP JS Jobs API Quickstart 1112
  • ADDED HTTP .NET Jobs API Quickstart 1113
  • RESOLVED SDK dotnet Jobs API Quickstart 1114
  • RESOLVED SDK Java Jobs API Quickstart 1115
  • RESOLVED SDK Python Jobs API Quickstart 1116
  • RESOLVED SDK JS Jobs API Quickstart 1117
  • FIXED No console for node app when debugging helloworld tutorial in vscode 1124
  • FIXED helloworld: add terminal to node app for vscode 1125
  • UPDATED chore: bump runtime version to rc.2 1126
  • UPDATED chore: cleanup & unify workflows and bump kind version 1127
  • UPDATED Bump CLI&Runtime incorporating patch fix 1138
  • FIXED Python Quickstarts tests failing 1143
  • UPDATED Merge changes from master to release-1.15 branch 1145

Upgrading to Dapr 1.15

To upgrade to this release of Dapr, follow the steps here to ensure a smooth upgrade. You know, the one where you don’t get red errors on the terminal.. we all hate that, right?

Local Machine / Self-hosted

Uninstall Dapr using the CLI you currently have installed. Note that this will remove the default $HOME/.dapr directory, binaries and all containers dapr_redis, dapr_placement and dapr_zipkin. Linux users need to run sudo if docker command needs sudo:

dapr uninstall --all

For RC releases like this, download the latest and greatest release from here and put the dapr binary in your PATH.

Once you have installed the CLI, run:

dapr init

Wait for the update to finish, ensure you are using the latest version of Dapr(1.15.0) with:

$ dapr --version

CLI version: 1.15.0
Runtime version: 1.15.0

Kubernetes

Upgrading from previous version

You can perform zero-downtime upgrades using both Helm 3 and the Dapr CLI.

Upgrade using the CLI

Download the latest RC release from here and put the dapr binary in your PATH.

To upgrade Dapr, run:

dapr upgrade --runtime-version 1.15.0 -k

To upgrade with high availability mode:

dapr upgrade --runtime-version 1.15.0 --enable-ha=true -k

Wait until the operation is finished and check your status with dapr status -k.

All done!

Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar

Upgrade using Helm

To upgrade Dapr using Helm, run:

helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update

helm upgrade dapr dapr/dapr --version 1.15.0 --namespace=dapr-system --wait

Wait until the operation is finished and check your status with dapr status -k.

All done!

Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar

Starting a fresh install on a cluster

Please see how to deploy Dapr on a Kubernetes cluster for a complete guide to installing Dapr on Kubernetes

You can use Helm 3 to install Dapr:

helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update

kubectl create namespace dapr-system

helm install dapr dapr/dapr --version 1.15.0 --namespace dapr-system --wait

Alternatively, you can use the latest version of CLI:

dapr init --runtime-version=1.15.0 -k
Post installation

Verify the control plane pods are running and are healthy:

$ dapr status -k
  NAME                          NAMESPACE    HEALTHY  STATUS   REPLICAS  VERSION  AGE  CREATED
  dapr-sidecar-injector         dapr-system  True     Running  1         1.15.0   15s  2025-01-31 13:07.39
  dapr-sentry                   dapr-system  True     Running  1         1.15.0   15s  2025-01-31 13:07.39
  dapr-operator                 dapr-system  True     Running  1         1.15.0   15s  2025-01-31 13:07.39
  dapr-placement                dapr-system  True     Running  1         1.15.0   15s  2025-01-31 13:07.39
  dapr-scheduler-server         dapr-system  True     Running  1         1.15.0   15s  2025-01-31 13:07.39

After Dapr 1.15.0 has been installed, perform a rolling restart for your deployments to pick up the new version of the sidecar. This can be done with:

kubectl rollout restart deploy/<deployment-name>

Breaking Changes

Scheduler Service

When upgrading from Dapr 1.14 to 1.15, the existing data directory will be removed, resulting in the loss of all jobs and, if the SchedulerReminders preview feature is enabled, actor reminders as well. In Dapr 1.15, the Scheduler is reaching Stable status and this upgrade introduces significant improvements, but also requires a fresh start. To avoid losing this data permanently, you can create a snapshot of the embedded etcd instance (within the Scheduler Service) using the etcdctl tool before upgrading. For example:

kubectl port-forward svc/dapr-scheduler-server 23879:2379
etcdctl --endpoints=http://localhost:23879 snapshot save snapshot.db

Then you can restore the snapshot in a local etcd cluster following the instructions in the etcd docs.

Downgrading from 1.15

When downgrading Dapr from 1.15 to previous Dapr versions on Kubernetes, the Scheduler service will not be able to successfully roll the dapr-scheduler-server StatefulSet, this is due to the Scheduler service updated the communication between hosts to use mTLS, introduced in PR 8395 The old Scheduler service pods must be manually deleted to fix the issue.

kubectl delete -n dapr-system pods/dapr-scheduler-server-0
kubectl delete -n dapr-system pods/dapr-scheduler-server-1
kubectl delete -n dapr-system pods/dapr-scheduler-server-2

.NET SDK

Dapr Configuration

The original implementation of the ConfigurationProvider used in Microsoft.Extensions.Configuration maintains the configuration values in an explicitly case-insensitive manner. In our DaprConfigurationStoreProvider, the returned configuration keys were not compared in a case-insensitive manner which led to a reported inconsistency in this behavior. Keys are now compared in a case-insensitive manner as one would expect when also utilizing the Microsoft.Extensions.Configuration library.

.NET Version Support

The release of Dapr v1.15 features support for .NET 6, .NET 8 and .NET 9, except Dapr.Workflows which is only compatible with .NET 7, .NET 8 and .NET 9.

Since .NET 6 and .NET 7 are no longer actively supported, per the .NET support policy, the release of Dapr v1.16 will only include support for .NET 8 and .NET 9 across all packages.

Java SDK

  • RESOLVED Bump supported Spring Boot baseline to version 3.2.x 1050

Deprecation Notices

Workflows

As part of workflows going to stable, the ineffective workflow methods provided in the Dapr Client are deprecated, please use the provided dedicated workflow client in each SDK going forwards for orchestrating your workflows.

Arguments and annotations

http-read-buffer-size and http-max-request-size darpd arguments are deprecated and replaced with read-buffer-size and max-body-size. See https://github.com/dapr/docs/pull/4401, https://github.com/dapr/cli/pull/1490 and annotations reference