Skip to main content
Group

Official: Platform Events

This group is the official discussion forum for customers and partners who are using Platform Events. It's a forum for customers to provide feedback, requirements and share ideas. Customers may also leverage this group to collaborate with each other on best practices. This group is maintained and moderated by a salesforce.com employee(s). The content received in this group falls under the official Safe Harbor. Please also see our official Salesforce Customer Community Terms of Use

Hey Trailblazers 👋                                                                               

   

  Heads up: Standard-Volume Platform Events (SVPE) will be retired in Winter '27. If you've been    

  waiting for an easier path onto High-Volume Platform Events (HVPE), the new SVPE→HVPE migration

  tool is now available in preview sandboxes — and your migration clock has officially started.     

                                                            

  The tool automates the heavy lifting of migrating your event definitions, Trigger and Flow

  subscribers, and downstream integrations from SVPE to HVPE — minimizing rework for both customers

  and AppExchange partners.

 

  ⏰ This tool is the supported path off SVPE before retirement.

 

  Why HVPE?

  - Longer event retention

  - More generous daily allocations and better scaling headroom

  - The forward path for event-driven architecture on the platform

 

  Where things stand:

  - ✅ Available now in your Preview (Pre-release) Sandbox

  - 🚀 Generally Available with the Summer '26 release (production rollout starts ~June 15, 2026)

  - 🛑 SVPE retires in Winter '27 — plan your migration accordingly                              

 

  What I'm asking of you:                                                                           

  1. Try it now in your preview sandbox — don't wait for GA.

  2. Tell us what worked and what didn't — especially edge cases, weird subscribers, or anything    

  else. All feedback is wanted.                                                                 

  3. ISV/Partner builders — Once you run it, your events will be updated, so you'll need to publish 

  a new package version for your downstream customers. Please run it against your managed packages 

  and share what you find, partner feedback is especially valuable here.                           

                                                                         

  📚 Docs: https://developer.salesforce.com/docs/atlas.en-us.262.0.api_tooling.meta/api_tooling/tooling_api_objects_platformeventmigration.htm

 

                                                  

   

  💬 Reply in this thread with questions, findings, or issues — I'll be watching and responding     

  personally.                                 

3 comments
  1. May 25, 1:37 PM

    Hi @Raj Advani

    We ran the full test scenario using our Summer '26 pre-release packaging and subscriber orgs, but the upgrade path did not work as expected.  

     

    Here is the exact outcome of the failed transition:

    The Tested Scenario & Outcome 

     

    • In the Packaging Org: The migration tool successfully converted the event, and the uploaded upgrade package source correctly contains the  <eventType>HighVolume</eventType> property.

     

    • After the Upgrade: In the subscriber org, the package upgrade installed with a 100% clean success status. However, the platform event type remained Standard-Volume (SVPE). Because the event type didn't mutate, the local subscriber Flows and Triggers simply continued to run against the original SVPE architecture without transitioning.

    Direct Questions for Engineering 

     

    • What are the next steps? How do we get the platform to recognize and force this volume-type mutation during a 1GP managed package upgrade?

     

    • Does PlatformEventMigration need to be packaged? Do we need to explicitly include this new metadata component in our managed package to facilitate the subscriber-side transition, or is that tooling strictly intended for manual/local execution within individual target environments?

    Best,

    Javier

0/9000

Hi @Raj Advani,

Following up on your update regarding the retirement of Standard-Volume Platform Events. With Summer ’26 approaching, could you provide a quick status update on: 

 

  1. Dates: Is Winter ’27 (Oct 2026) still the official retirement (EOL) date?
  2. Migration Tool: Is the tool still on track for Summer ’26, and will it support packaged PEs for ISVs?
  3. Patch Compatibility: Will the migration be compatible with a Patch (Service Pack) release, or will it require a major Package Version bump?

Any clarity for ISV roadmap planning would be greatly appreciated!

10 answers
  1. May 19, 6:07 PM

    @Phil W The migration tool will work with 1gp and 2gp packaging.  The documentation can be found here - https://developer.salesforce.com/docs/atlas.en-us.262.0.api_meta.meta/api_meta/meta_platformeventmigration.htm

     

    once you run the tool in your packaging org you would follow the same process as a package upgrade.   

     

    Regarding the timeline.  We are aiming to get retire SVPE in Winter '27 but we will continue to monitor progress and adjust the timeline accordingly. 

0/9000

I am successfully authenticating and able to subscribe just fine using PubSub API to the account platform event. 

 

Making unary calls with PublishAsync are successfully sending, i am receiving the replayId and CorrelationId back, however these platform events are not appearing. Interestingly Streaming Monitor creates the alert that an event has fired, however does not show up in the graph. 

 

I am triggering a simple flow using flow builder from this platform event which works fine when triggering via Apex/Streaming Monitor. I am getting flow errors. Error ID 712146348-203459 (1391829016) 

 

I am using Avro, basing my code from the Java and Go samples (there is no C# publishing sample - only subscribing) 

 

I have generated code using Avro.CodeGen from the schema retrieved from the GetSchemaInfoAsync endpoint from the proto file. I have spent a long time reading through the docs and code. The only thing i could find was 

https://developer.salesforce.com/docs/platform/pub-sub-api/guide/event-avro-serialization.html

 

"Pub/Sub API doesn’t validate the Avro format of the event payload that’s passed in to the 

Publish or PublishStream

 calls. It’s up to the client to make sure that the event payload is in Avro format and that it’s valid. The Publish and PublishStream calls complete successfully even if an event payload isn’t in valid Avro format. Because an event with an invalid payload fails to deserialize, a subscriber must filter out the events with invalid payloads." 

 

But i am unaware of way to debug this or validate. Im using  Avro.IO.BinaryEncoder which i believe is the same as the Java implementation. Any help would be greatly appreciated. Thanks. 

1 answer
  1. Apr 4, 4:31 PM

    Hi Matthew,

    The most likely root cause is an Avro serialization format mismatch between the C# Apache.Avro library and what the Salesforce Pub/Sub API expects. Here are the key things to verify and fix:

    1. Byte buffer setup for BinaryEncoder - The C# Apache.Avro library requires you to write to a MemoryStream and then pass the byte array correctly. A common mistake is not flushing or closing the encoder before reading the bytes. Make sure you are doing:

    var stream = new MemoryStream(); var encoder = new BinaryEncoder(stream); var writer = new GenericDatumWriter(schema); writer.Write(record, encoder); encoder.Flush(); byte[] avroBytes = stream.ToArray();

    2. The payload in PublishRequest must be wrapped correctly - The ProducerEvent.Payload field should be the raw Avro-serialized bytes. Do NOT include the Avro schema header (5-byte magic + schema fingerprint) that some serializers add. The Pub/Sub API handles schema resolution separately via SchemaId.

    3. Verify the SchemaId in your publish request matches the schema returned by GetSchemaInfo - If you are caching the schema, ensure it matches the currently active schema for your Platform Event. A mismatched SchemaId will cause silent deserialization failures.

    4. The error ID 712146348-203459 in your Flow - This is a Flow runtime error, not a Platform Event publish error. The event IS being published (Streaming Monitor confirms fire), but the Flow trigger is failing during execution. Check the Flow error details in Setup, Apex Jobs, or the debug log to identify the actual Flow error.

    5. Validate your Avro payload - To debug, try subscribing back to your own published event using the PubSub API Subscribe call. If the subscriber receives valid data, the publish is working. If the subscriber gets an error or null values, the Avro encoding is malformed.

    Hope this helps you isolate the issue!

    Mani G | Principal/Founder | https://Keneland.com

0/9000

My week started well before my normal business hours seeing messages from a team from a very important downstream system that listens for CDC events from Salesforce. No events had been coming through. For hours. Checking the Salesforce limits showed we weren't close to any eventing limits, yet messages just weren't coming through, even when we made test changes to records that should be delivering CDC events.  

 

Ultimately a ticket with support returned the "Note that there is no defined SLA for CDC event delivery , and occasional delays are expected " which we'd seen before, but this time we also received:  

 

"CDC uses shared resource on instance & when other Org publish tons of events, other customers' org may run into events delivery delay 

We notice this phenomenon and continue to improve this performance issue." 

 

There was no issue listed on

status.salesforce.com

and I was surprised to see a delay of this many hours.  

 

Questions I have: 

 

Have others experienced this kind of delay in eventing throughput?  

 

Do these delays only affect external subscribers or also Apex subscribers (which may make CDC as a method for asyncronous trigger logic problematic)? 

 

What's the longest delay we can expect to see when leveraging CDC? (Enough of a delay and it doesn't seem as "near real time" as we're normally used to.) 

 

CDC is built by Salesforce so is a shared service between customers. Would we have avoided this delay had we built on custom-defined triggered HVPE instead?  

 

Thanks much to anyone who is able to provide any clarity or additional experience and info. 

2 answers
  1. Mar 10, 5:45 PM

    @Jonathan Green

    First, please accept my apologies for the delays you experienced. This is certainly not the standard we strive for, and my team has been working hard to resolve the underlying issues and prevent them from recurring. This specific technical issue last week impacted the processing of CDC events and there was a trust post but we resolved the delay over the weekend and got processing moving again and I suspect the trust post was resolved, however like a traffic jam there could still have been some orgs that were churning through their backlog.  

     

    To answer your questions when delays like this occur they do affect all subscribers.  We've added a ton of alerting to notify us when the conditions for a delay are ripe so we can clear them out faster.  Its hard to say what the longest delay would be as they are very situation specific.   

     

    This specific delay would have occurred on HVPE if you used publish after commit.  If used publish immediate you would have not experienced this delay. 

     

    Please let me know if you have any other questions.

0/9000

I'm working with Platform Events in Salesforce and have a question about how event delivery is handled with respect to heap size limits in Apex triggers. 

 

I understand the following: 

 

Each Platform Event can be up to 1 MB in size. 

 

An Apex trigger that subscribes to a Platform Event runs synchronously, and the maximum heap size for synchronous Apex transactions is 6 MB. 

 

It's possible to configure the batch size (e.g., 100) for a Platform Event subscriber via PlatformEventSubscriberConfig. 

 

 

Here’s my concern: 

 

If I publish 100 events, each of size close to 1 MB, and my trigger is configured with a batch size of 100, that would theoretically mean 100 MB worth of data is being delivered to a single trigger execution. But this clearly exceeds the 6 MB heap limit for synchronous Apex. 

 

❓ My question is: 

 

How does Salesforce handle this under the hood? 

 

Does the Platform Event delivery system automatically split the batch into smaller chunks that stay within the synchronous heap limit? 

 

Can I trust that the Apex trigger will never receive more events than it can handle without hitting heap size errors? 

 

Is there any official documentation or internal behavior description about how this batching/delivery mechanism works for large Platform Events? 

 

 

Thanks in advance for any clarification or resources!

3 answers
0/9000

Hey guys. Love the work.  

 

I want to let you all know of what appears to be a bug.  

 

Inspired by the awesome talk

@Raj Advani

gave at TDX London, I've been playing with parallel subscribers for an upcoming webinar. Cool feature.  

 

I've discovered that when I change the numPartitions value in PlatformEventSubscriberConfigs to anything other than 1, the Platform Event detail page in the Setup Menu gacks.  

 

This is in a Scratch org. And the basic behavior:  

1. Add a PE 

2. Add the PlatformEventSubscriberConfigs to define >1 partition (I've actually only tested with 3 and 10) 

3. For the record the PE also has partitionKey of EventUuid and a running user defined, but those don't seem to impact behavior.  

4. Changing numPartitions back to 1 resolves the problem.  

 

The page reports

Error ID: 1530009560-35772 (-1678926728)

.  

 

I've not had time to test on a different org type as of yet.  

 

 

1 comment
  1. Aug 4, 2025, 8:43 PM

    @Peter Chittum this is very interesting and I have not seen it reported by anyone else yet.  I'll have the team take a look.  Will open a bug on it right now.  Thanks for bringing it to my attention.

0/9000

Hello trailblazer 

 

I'm trying to find out if there's a way to determine whether MuleSoft is subscribed to a Salesforce Platform Event, and specifically, to see the last published ID and the last subscribed (processed) ID.

Is there a way to retrieve these details for internal subscribers?

Appreciate your help. 

How to get the information about External Subscriber(outside Salesforce) to Platform Events

 

 

2 answers
  1. May 17, 2025, 7:08 PM

    Hi @Rajat Sharma

     

    Currently, Salesforce does not offer a native way to view or track external subscribers (such as MuleSoft) to Platform Events. The EventBusSubscriber object only displays internal subscribers like Apex Triggers, Flows, and Processes.

    You can refer to the following IdeaExchange post and consider upvoting it to support this feature request:

    https://ideas.salesforce.com/s/idea/a0B8W00000LRuDiUAL/platform-events-external-system-subscribers-not-visible-in-eventbussubscriber

     

    Smiliar thread: 

    https://salesforce.stackexchange.com/questions/248028/view-platform-event-external-subscribers

     

     

    Thanks!

0/9000

Hey everyone,

I know there has been a lot of concern in the community—especially among our ISVs—regarding the retirement of Standard Volume Platform Events. We’ve heard your feedback and taken it to heart.

I’m happy to share that Standard Volume Platform Events will remain in deprecation mode for the time being and will not be retired in Summer ’25. To clarify, deprecation means they will continue to function as they always have, but with limited support—we will not be fixing bugs or adding new features.

When the time does come for retirement, we will provide an official migration path and tool to ensure a smooth transition. If you’ve already migrated to High Volume Platform Events, that’s great—you’re leveraging the latest technology with all its benefits. If not, you’ll have more time and additional support from Salesforce to assist with the migration.

Official documentation detailing this change will be released next week, but I wanted to share this update with you as soon as possible. If you have any questions or concerns, please don’t hesitate to reach out.

2 comments
  1. Feb 3, 2025, 7:11 PM

    @Phil W agreed.  We are investigating if this can be done on the backend (infrastructure) so there is nothing ISV/OEMs have to do.  Until this is figured out we will NOT move from depreciated to retired.

0/9000

And there I was, stopped in my tracks by a red error message: "Endpoint needs to be in full URL form". 

How did I get here? We've got to go back. Way back... about 10 entire minutes....

 

"I'm totally using the new Named Credentials for my new setup of Event Relays to AWS EventBridge. It's the way of the future!" I said eagerly.

 

After following the docs here on External Credentials for AWS, I found nothing about the URL for AWS. Back to the Event Relays doc, I saw only Legacy Named Credentials in the documentation.

 

"No, it'll be fine" I say to myself, and read:

"For URL, enter a URL in the format arn:aws:aws_region:aws_account_number. Replace the aws_region placeholder with your AWS region. Replace the aws_account_number placeholder with your 12-digit AWS account ID. The URL is case-sensitive, and aws_region is in capital letters. For example, the URL for an account in the US-WEST-2 region has this format: arn:aws:US-WEST-2:XXXXXXXXXXXX. (XXXXXXXXXXXX is a placeholder for the 12-digit AWS account ID.)"

 

I checked the Named Credential I used for my first AWS EventBridge integration to a different AWS account, and it matched. Confidently I entered the appropriate value (Account # changed in the screenshot for this post):

Does Event Relays to EventBridge requires Legacy Named Credentials? arn:aws URL from docs is rejected.

 

I clicked Save ready to celebrate quick success. And my hopes were dashed - shattered like a piece of cheap china tossed carelessly onto a tile floor.

The heartless words stare back at me still:  "Endpoint needs to be in full URL form"

 

I know this works with Legacy Named Creds - is the arn:aws URL format no longer supported with new Named Credentials? 

5 answers
  1. Jul 15, 2024, 6:20 PM

    Hey @Jonathan Green, Event Relay only works with Legacy Named Credentials right now, which is definitely buried in the Named Credentials UI these days. If it helps, @Ross Belmont and I are fleshing out New Named Credentials support right now and we're hoping to have a POC to show you and other interested folks in a few months. We're going into Spring '25 Planning now and can update you when we have timelines nailed down a little more.

0/9000

Regarding the announced retirement of Standard-Volume Platform Events: https://help.salesforce.com/s/articleView?id=002280033&type=1

 

  • Is this a "soft retirement" where the feature will work but we just can't create new Standard-Volume events? Or will publishing them actually fail after Summer '25?
  • Why isn't SF offering us a pathway to simply update the definition of a PE to High-Volume and resolve it that way?
  • What are the implications if our org has an installed managed package that contains a Standard-Volume PE?
  • What are the implications to the ISV who developed that package?
12 answers
  1. Jan 13, 2025, 5:44 PM

    @Raj Advani

    Thanks for the update. Is it also fair to say that in orgs with packaged Standard Volume events, it should continue to be possible for unpackaged code to fire those packaged events, and for unpackaged triggers subscribing to those events to fire, until a viable migration path is established?

     

    Honestly this whole mess would be much easier if SF simply announced: "All your Standard Volume PEs, packaged or not, are going to transform into High Volume PEs at the back end, as of patch/release X. All subscriptions will transfer over to the upgraded PEs. A few event deliveries might be missed during the upgrade transition."

0/9000