Bug summary
Summary
{{ event.url }} renders as an empty string in automation action Jinja templates on Prefect Cloud. The fix in #19851 (merged Dec 19, 2025)
added a url property to the server-side ReceivedEvent, but 8 months later the property still evaluates to empty when used in automation
templates.
Reproduction
Automation flow_crashed uses this template in a RunDeployment action parameter:
Link: [View Event]({{ event.url }})
Every triggered action renders this as:
Link: View Event
Evidence
• Prefect client version: 3.8.3
• Server type: Prefect Cloud
• Work pool: ECS
• Pattern: 100% of automation-triggered actions using {{ event.url }} produce empty links. Verified on issues created Aug 25-27 across
multiple deployments.
All other Jinja variables work ({{ event.id }}, {{ event.occurred }}, {{ event.resource["prefect.state-message"] }}, {{
event.related[1]["prefect.resource.name"] }}).
Analysis
PR #19851 added ReceivedEvent.url as a @Property calling url_for(self, url_type="ui"). Possible reasons it's still empty:
- Serialization before rendering — if the Cloud automation pipeline serializes ReceivedEvent to a dict before passing it to Jinja, the
@Property is lost and event.url resolves to undefined/empty
- PREFECT_UI_URL not set in the server-side rendering context — url_for() returns None when this setting is absent
- Cloud backend hasn't picked up the change — the OSS server code has the property, but the Cloud rendering pipeline may use a different
code path
Expected behavior
{{ event.url }} should render a working URL like:
https://app.prefect.cloud/account//workspace//events/event/2026-08-27/06a8fa82-cc7f-7075-8000-ec0580300884
References
• Original request: #19526
• Fix PR: #19851
Version info
Version: 3.8.3
API version: 0.8.4
Python version: 3.11.12
Git commit: d8f54b5c
Built: Thu, Aug 13, 2026 06:55 PM
OS/Arch: linux/x86_64
Profile: dope
Server type: cloud
Pydantic version: 2.13.4
Server:
Database: sqlite
SQLite version: 3.45.1
Integrations:
prefect-docker: 0.7.2
prefect-cloud: 0.1.13
Additional context
No response
Bug summary
Summary
{{ event.url }} renders as an empty string in automation action Jinja templates on Prefect Cloud. The fix in #19851 (merged Dec 19, 2025)
added a url property to the server-side ReceivedEvent, but 8 months later the property still evaluates to empty when used in automation
templates.
Reproduction
Automation flow_crashed uses this template in a RunDeployment action parameter:
Link: [View Event]({{ event.url }})
Every triggered action renders this as:
Link: View Event
Evidence
• Prefect client version: 3.8.3
• Server type: Prefect Cloud
• Work pool: ECS
• Pattern: 100% of automation-triggered actions using {{ event.url }} produce empty links. Verified on issues created Aug 25-27 across
multiple deployments.
All other Jinja variables work ({{ event.id }}, {{ event.occurred }}, {{ event.resource["prefect.state-message"] }}, {{
event.related[1]["prefect.resource.name"] }}).
Analysis
PR #19851 added ReceivedEvent.url as a @Property calling url_for(self, url_type="ui"). Possible reasons it's still empty:
@Property is lost and event.url resolves to undefined/empty
code path
Expected behavior
{{ event.url }} should render a working URL like:
https://app.prefect.cloud/account//workspace//events/event/2026-08-27/06a8fa82-cc7f-7075-8000-ec0580300884
References
• Original request: #19526
• Fix PR: #19851
Version info
Additional context
No response