GitHub Repo
Dify Community Reports HTTP Array Serialization Bug That May Silently Alter JSON Requests
Dify’s HTTP Request node was reported to insert object arrays using Python string representation, potentially changing null values and object structure before sending. The community has proposed a JSON serialization fix, but it has not been merged; the affected release range remains unconfirmed.

On October 3, the Dify community reported a reproduction case in which the HTTP Request node may send content that differs from the upstream data when an Array[Object] variable is embedded in the request body, without raising an error. The report identifies a self-hosted source deployment and lists version 1.17.1 and main commit 8222397; this does not establish that all 1.17.1 deployments behave the same way. Issue report
The case first uses a Code node to generate two objects containing a Boolean, a null value, and text with a single quote, then inserts the array into an HTTP JSON body. The reported output shows the second object merged into the first object’s text field. In a smaller example, null becomes the string "None". Switching to raw text leaves the Python-formatted representation, which is not valid JSON. Reproduction code and output
The report attributes the cause to the variable-to-text conversion path: object arrays use str(value), producing single quotes, True, and None, which the executor then inserts into the template. The JSON path subsequently passes through repair_json, which may produce parseable data whose meaning has changed. This means a successful request alone does not prove that the data remained intact. Technical analysis
The official documentation describes HTTP Request as a node for connecting workflows to external APIs, with support for dynamically inserting upstream variables and body formats including JSON and Raw Text. For workflows that send retrieval results or model-organized object arrays to other services, this case suggests that engineers compare field types and array lengths at the receiving end. This is a deployment-check recommendation inferred from the case; there is no evidence that all such workflows are affected. Official documentation
A Graphon fix proposed the same day changes ArrayObjectSegment.text to use json.dumps. The author reports that a new reproduction test and 26 variable tests pass, but at the time of review, the proposal remained open with no review record. Follow-up should track its merge status, the Dify release that includes the fix, and the edge case in which an empty array still outputs an empty string. Proposed fix