Email workers message.forward does not work

None of the setup for using email workers to forward messages works within the Cloudflare system. The examples do not work even when the destination addresses have been verified.

I see examples of people raising this issue for at least a year, as of May 2024 this issue has not been resolved even though the example code presents possible solutions. If Cloudflare wishes to provide real services to their customers they would address this issue immediately and stop deferring with marketing documentation that is clearly falsely representing the services they provide.

There’s a bunch of things that could cause this to be not working if you setup things improperly. I have an Email Worker which uses message.forward and has forwarded at least an email once a day for the past year or so without issues.

I would tail your worker: Real-time logs · Cloudflare Workers docs, and see if it’s erroring out at all. I would also make sure you are awaiting message.forward as otherwise it’d be cancelled. If your code is simple/you have a mimimal reproduction, sharing that could be useful as well.

Followed the examples and reviewed many other cases. It’s a simple message.forward() to an already verified destination address. As an Email Worker (still in beta) it does not produce a real time log visible in the Workers & Pages.

Definitely BETA software with very poor options for debugging or validating based on the API and the documentation.

You most certainly can see the email events in tail

and that’s what I would recommend to debug it, check for errors, as well as ensuring you are awaiting the message.forward. That very email sent to a Worker which message.forwarded to my gmail and I received it fine.

There is no tail available on the interface we have access to. The only time we get any logging is during the edit mode and that just generates a simulation event, no actual message transmission.

You can find your Email Worker under Workers & Pages, and then go to logs → real-time logs → begin log stream, magic link: