Dynamic REST query dynamicParams ignored

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

  1. Standard dynamicParams approach β€” ignored
  2. Hardcoded full absolute URL β€” ignored
  3. Cloned clean query (updateLeadAPI_1) β€” same issue
  4. Disabled other queries (avoid race conditions) β€” no change
  5. 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

  1. Dynamic query parameters not applied correctly
    Passing dynamic query params to API resource
  2. 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:

  1. Whether this is a known regression in Retool v3.319+ affecting dynamicParams for REST queries.
  2. Whether there’s an internal bug ID tracking this issue (please provide the ID).
  3. How to fully clear or strip hidden template bindings ({{ url }} and {{ body }}) in the current Retool UI.
  4. 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.