Bug Report: HTTP Step response values are empty in downstream steps on self-hosted Novu 3.19.0
Description
On self-hosted Novu 3.19.0, the response values from an HTTP Step are not available in downstream steps.
The first HTTP Step executes successfully and returns a valid JSON response.
A Response Body Schema is configured for the first HTTP Step, and the workflow API shows that the downstream step correctly contains the generated previous-step variables.
However, when the downstream HTTP Step references the previous step using:
{{steps.http-request-step.content}} {{steps.http-request-step.title}} {{steps.http-request-step.status}}
all values are rendered as empty strings.
The same behavior was also reproduced on self-hosted Novu 3.18.0.
Reproduction steps
Deploy self-hosted Novu 3.19.0.
Create a workflow with two HTTP Steps.
Configure the first HTTP Step with:
Step ID: http-request-step
- Configure the first HTTP Step to call an API that returns:
{ "status": true, "content": "This is an example message.", "title": "example text" }
- Configure the Response Body Schema of the first HTTP Step:
{ "type": "object", "properties": { "status": { "type": "boolean" }, "content": { "type": "string" }, "title": { "type": "string" } } }
Enable "Enforce schema validation".
Disable "Continue on failure".
Add a second HTTP Step.
In the second HTTP Step body, reference the first step result:
STEP_CONTENT=[{{steps.http-request-step.content}}] STEP_TITLE=[{{steps.http-request-step.title}}] STEP_STATUS=[{{steps.http-request-step.status}}]
Publish and trigger the workflow.
Check the rendered values in the downstream HTTP Step.
Expected behavior
The response body from the first HTTP Step should be available to downstream steps.
The following variables:
{{steps.http-request-step.content}} {{steps.http-request-step.title}} {{steps.http-request-step.status}}
should resolve to:
STEP_CONTENT=[This is an example message.] STEP_TITLE=[example text] STEP_STATUS=[true]
Actual Behavior with Screenshots
The first HTTP Step completes successfully with HTTP 200.
Execution details:
{ "statusCode": 200, "body": { "content": "This is an example message.", "event_id": "1788146684284-d4a844b9a969b38e", "status": true, "title": "example text" }, "headers": { "content-type": "application/json; charset=utf-8" } }
However, in the downstream HTTP Step, the previous-step variables are rendered as empty:
STEP_CONTENT=[] STEP_TITLE=[] STEP_STATUS=[]
The workflow API also shows that the downstream step contains the expected generated variables schema:
{ "steps": { "type": "object", "properties": { "http-request-step": { "type": "object", "properties": { "status": { "type": "boolean" }, "content": { "type": "string" }, "title": { "type": "string" } } } } } }
So the response schema and downstream variables schema appear to be correct, but the values are empty at runtime.
Novu version
Self-hosted Novu 3.19.0 Also reproduced on 3.18.0.
npm version
NA - Novu is deployed using Docker images.
node version
No response
Provide any additional context for the Bug.
The issue does not appear to be caused by an incorrect step ID or a missing Response Body Schema.
The workflow API confirms:
- First HTTP Step ID: http-request-step
- Response schema contains:
- status
- content
- title
- The downstream step variables schema contains:
- steps.http-request-step.status
- steps.http-request-step.content
- steps.http-request-step.title
"Enforce schema validation" is enabled and the first HTTP Step still completes successfully with HTTP 200.
The HTTP response matches the configured response schema.
We also tested:
{{steps.http-request-step.body.content}}
but it also resolves to an empty value.
The documented flat access pattern:
{{steps.http-request-step.content}}
is recognized in the workflow variables schema, but resolves to an empty value at runtime.
This appears to be an issue with HTTP Step result propagation or runtime step result resolution.
Have you spent some time to check if this bug has been raised before?
- I checked and didn't find a similar issue
Have you read the Contributing Guidelines?
- I have read the Contributing Guidelines
Are you willing to submit PR?
None
Source: novuhq/novu