Summary
In a new (React-based) app builder backend function on Retool Cloud, calling a REST resource via rawRequest with a DELETE method sends an empty body (triggering a 400 on a [FromBody] endpoint), even though POST with the same body works and the identical DELETE-with-body succeeds from a classic app REST query.
AI Response
This lines up with a known class of regressions tied to Retool's ongoing replacement of the backend HTTP library, which has introduced gaps in how request bodies and headers are handled for certain methods. Retool staff have acknowledged this transition publicly and noted that some body/header behaviors still need to be addressed before the switch is complete. Since the same DELETE-with-body works from a classic app REST query, that path is a reliable fallback for the affected admin actions in the meantime. Separately, backend functions in the new React apps are known to not yet mirror every capability of classic queries when calling resources, so divergent behavior like this between the two builders is expected for now.
Sources
Raw request body behavior changed when Content-Type header is missing
A solved report where Retool staff confirm they're mid-transition replacing a problematic backend HTTP library, which caused request body/header handling changes and acknowledged feature gaps — the same root cause behind a DELETE body being dropped.
New React-based apps: no way to send per-request custom headers from a backend function to a GraphQL resource?
A solved thread corroborating that backend functions in the new React-based apps don't yet carry over all classic-query request capabilities when calling resources, explaining why this works in a classic query but not via rawRequest.
The Community Team is testing out a new automation. Let us know if it's helpful (or not) by leaving a
,
, or
. Or by marking this post as the "Solution"! Let us know if you have any feedback here. ![]()