Formal Retool Support Ticket β DynamicParams Ignored in REST PATCH Queries
Subject: Retool REST query dynamicParams ignored β PATCH requests return HTML instead of JSON
Summary
Our Retool Cloud app (thorntongreen.retool.com) fails to perform dynamic REST PATCH requests as expected.
All PATCH queries using dynamicParams ignore the provided URL and body configuration, sending requests only to the base resource URL with an empty body.
This results in HTML responses (the frontend app) instead of JSON from the backend API.
Environment
Platform: Retool Cloud
Version: v3.320.0 (Build 294458)
App: CRM_Dashboard
Resources:
- Prechecker API CRM Dashboard (498c59c7-d0ee-43f0-9003-55d22571267e)
- Prechecker API (69db952b-9955-41a9-9185-199231b4785a)
Queries involved: - updateLeadAPI
- updateLeadAPI_1
- triggerUpdateLeadAPI
Expected Behavior
When triggering a REST query dynamically, Retool should:
- Apply dynamicParams.url to override the endpoint path relative to the resource base URL
- Apply dynamicParams.body as the request payload
- Forward headers defined in the request (Content-Type, ngrok-skip-browser-warning, etc.)
- Receive a JSON response from the backend API
Example expected URL:
https://unprojective-leonor-heterostyled.ngrok-free.dev/api/sessions/:sessionId
Actual Behavior
Observed behavior:
- Retool ignores dynamicParams.url and dynamicParams.body
- PATCH requests sent to base URL (no /api/sessions/:id appended)
- Body payload empty {}
- Response Content-Type: text/html; charset=utf-8
- Returned data: frontend HTML instead of backend JSON
Network example:
Request URL: https://unprojective-leonor-heterostyled.ngrok-free.dev/
Request Method: PATCH
Request Body: (empty)
Response: HTML (Next.js frontend)
Console log shows:
PATCH Request: { url: "/api/sessions/202512081505_NSY8LD", payload: {...} }
Response: HTML content
Approaches Tested
- Standard dynamicParams approach β ignored
- Hardcoded full absolute URL β ignored
- Cloned clean query (updateLeadAPI_1) β same issue
- Disabled other queries (avoid race conditions) β no change
- Verified backend via curl β backend responds correctly with JSON
Root Cause Hypothesis
Retool is likely retaining hidden template bindings (β{{ url }}β, β{{ body }}β) in the REST query configuration even when fields appear blank in the UI.
These bindings override dynamicParams when executed, causing Retool to fall back to the base resource URL with an empty body.
This matches previous Retool regression behavior (v3.319+), where RESTQuery precedence rules were broken for dynamic parameters.
Evidence
Console output:
PATCH Request: { url: "/api/sessions/202512081505_NSY8LD", payload: {...} }
Response: HTML content
Network tab:
Request URL: https://unprojective-leonor-heterostyled.ngrok-free.dev/
Request Body: (empty)
Response type: text/html
CORS error message:
Access to fetch at 'https://unprojective-leonor-heterostyled.ngrok-free.dev/api/sessions/...'
from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header present.
Community References
- Dynamic query parameters not applied correctly
Passing dynamic query params to API resource - Dynamic body values in REST API resource not processed
Dynamic Body Values in Rest API Resource?
These show related issues with REST dynamic parameter behavior inconsistencies.
Request for Retool Engineering / Support
Please confirm:
- Whether this is a known regression in Retool v3.319+ affecting dynamicParams for REST queries.
- Whether thereβs an internal bug ID tracking this issue (please provide the ID).
- How to fully clear or strip hidden template bindings ({{ url }} and {{ body }}) in the current Retool UI.
- Whether any fix or workaround exists to ensure dynamic PATCH requests return JSON.
Impact
This issue blocks critical functionality:
- Inline edits cannot be saved in production dashboards.
- All update requests fail, returning the frontend HTML page.
- Dynamic REST APIs are unusable for PATCH/PUT operations.
Next Step
Please escalate this as an internal Retool bug and provide a tracking ID for reference.
All reproduction steps, logs, and configuration exports can be supplied on request.