Fixing malformed messages with ServicePulse
Did you ever look at a failed message in ServicePulse and think “I wish I could just edit this quickly and dump it back in the queue”? Yes, you should follow best practices and investigate the root cause and make sure the error doesn’t come back, but the real world moves faster than that and sometimes you just need to get &#@%! done and figure it out later.
Now you can. Using ServicePulse 1.21.0+ and ServiceControl 4.1.0+, you can edit the headers and body of a failed message and quickly get back on track.
🔗How it works
When a message fails and you want to edit it, you can open the failed message details in ServicePulse via the Failed Message Group page or from the All Failed Messages page. Once you’re browsing the failed message details page, click the Edit Message button in the toolbar and modify what you need.
Some headers are locked and cannot be modified because doing so will break your system, or because there’s no need to edit them and it’s best to guarantee consistency with the rest of the system. ServicePulse will also warn you when editing certain headers that you may need to edit but risk causing unexpected behavior. There are some additional limitations to editing and retrying messages in ServicePulse, so we encourage you to read the docs.
When you’re done and retry the edited message, the original message is marked as processed, and a new message (with the modified contents) is created and queued for processing.
🔗Accessing the feature
At the moment, this feature is experimental. Editing messages can be dangerous, so we want to make sure we have a good understanding of why customers need it, and the use cases they are facing, so that we can refine the feature further.
As a result, we’ve designed this feature to be disabled by default for now. If you’d like to use it, please contact us so that we can understand how the feature is going to be used.
UPDATE: We’ve made the configuration to enable the feature public, but would still appreciate hearing about your use cases to guide future development efforts!
🔗Summary
We know you’d prefer to run your system according to best practices all the time, but we also know that real life isn’t always so easy. Sometimes it’s not worth the effort to truly fix something that was a one-off situation in the first place and should never happen again anyway.
Now, the ability to edit messages in ServicePulse before retrying them will give you the flexibility to do that.
This is only the first step. We’re looking forward to talking with you when you contact us to enable the feature in your systems, so that we can learn from your use cases, which will enable us to extend this feature to be even more useful to you in the future.