GPT Action executes without connecting to my backend and returns a `{}` response

I had this issue this morning and spent a few hours debugging it.

I added a new parameter to one of my endpoints, and suddenly, executing that endpoint caused my action to silently fail. The debug logs showed:

[debug] Calling HTTP endpoint
{
  "domain": "my-domain.example",
  "method": "get",
  "path": "/endpoint",
  "operation": "endpoint",
  "operation_hash": "29ecf0762e2b8d05eb714f28c9bd68c54ab9a6dc",
  "is_consequential": false,
  "params": {
    "foo": "bar",
    "baz": "glorp"
  }
}
[debug] Response received
{}

I could see the logs on my backend, and it was clear that the action wasn’t even being sent to my backend at all. However, the parameters being sent were completely correct.

Things I tried:

  • Saving the latest version of my GPT
  • Deleting and re-creating my actions
  • Deleting and re-creating my GPT
  • Logging out under Privacy Settings → Connected Accounts
  • Changing the permissions under Privacy Settings → Allowed Actions

The solution was that I had incorrectly specified my schema, but this wasn’t being picked up anywhere.

My schema was (snipped to the relevant part):

"parameters": [
  {
    "schema": {
      "description": "Parameter description"
    },
    "required": false,
    "name": "foo",
    "in": "query"
  },
],

When, instead, I should have included a type in the parameter’s schema, like:

"schema": {
  "type": "string", 
  "description": "Parameter description"
},

Including this caused it to connect correctly.