I also am having the same problem. If I make a test prompt and ask it to call my tool 25 times, it always fails after 10-20 calls.
On the failed tool call, my MCP server does not receive any request.
Iâm not sure exactly what information from the dev tools you are looking for, but here is the payload and response for the conversation. I could not include the whole response, so this is just the tool call that failed.
Also note that I have two MCP servers loaded (both of which perform similar functions and have similar names). It looks like when one tool fails, all tools from that MCP server disappear.
Conversation network request payload
{âactionâ:ânextâ,âmessagesâ:[{âidâ:â586ef8c9-3b95-4865-bb72-1ad4d654c965â,âauthorâ:{âroleâ:âuserâ},âcreate_timeâ:1774770187.428,âcontentâ:{âcontent_typeâ:âtextâ,âpartsâ:[âgame id 19fe6691-cdb9-4736-9aee-617d04ab8221\r\n\r\nas a test, draw 25 cards one at a timeâ]},âmetadataâ:{âdeveloper_mode_connector_idsâ:,âselected_sourcesâ:,âselected_github_reposâ:,âselected_all_github_reposâ:false,âserialization_metadataâ:{âcustom_symbol_offsetsâ:}}}],âparent_message_idâ:âclient-created-rootâ,âmodelâ:âgpt-5-4-thinkingâ,âtimezone_offset_minâ:420,âtimezoneâ:âAmerica/Los_Angelesâ,âconversation_modeâ:{âkindâ:âprimary_assistantâ},âenable_message_followupsâ:true,âsystem_hintsâ:,âsupports_bufferingâ:true,âsupported_encodingsâ:[âv1â],âclient_contextual_infoâ:{âis_dark_modeâ:true,âtime_since_loadedâ:942,âpage_heightâ:1271,âpage_widthâ:1480,âpixel_ratioâ:1,âscreen_heightâ:1440,âscreen_widthâ:2560,âapp_nameâ:âchatgpt dot comâ},âparagen_cot_summary_display_overrideâ:âallowâ,âforce_parallel_switchâ:âautoâ,âthinking_effortâ:âstandardâ}
Conversation network request response
event: delta
data: {âoâ: âaddâ, âvâ: {âmessageâ: {âidâ: â1b3044f3-b120-4971-8834-c14d15cde912â, âauthorâ: {âroleâ: âtoolâ, ânameâ: âapi_toolâ, âmetadataâ: {}}, âcreate_timeâ: 1774770261.345768, âupdate_timeâ: null, âcontentâ: {âcontent_typeâ: âtextâ, âpartsâ: [âResource not found: /mtg-auto-goldfish-turn-simulation/link_69c889d5b1848191abf6d574518badf6/draw_card_from_top.\nPlease retry your request with an available resource with api_tool.call_tool if relevant. Your available resources are: \n\n{âfiniteâ: true}\n// Draw the very first opening seven-card hand from the stored library for an existing game ID that was created outside MCP. Call this exactly once per game, before any mulligans. Never call this after mulligan, because mulligan already shuffles and draws the replacement seven-card hand.\ntype /mtg-auto-goldfish-opening-hand/link_69c889ac360481918b1bf3dc5f989941/draw_starting_hand = (: {\n// The game ID returned by the regular HTTP create-game endpoint, not by an MCP tool.\ngameId: string,\n}) => any;\n// Return the current opening hand to the library, shuffle, and draw a fresh seven-card hand. This can only be called after the starting hand has been drawn. Important: this tool already draws and returns the replacement hand, so do not call draw_starting_hand after using this tool.\ntype /mtg-auto-goldfish-opening-hand/link_69c889ac360481918b1bf3dc5f989941/mulligan = (: {\n// The game ID returned by the regular HTTP create-game endpoint, not by an MCP tool.\ngameId: string,\n// A short explanation of why this hand is being mulliganed.\nreason: string,\n}) => any;\n// Confirm the final opening hand after all mulligans and any bottoming decisions are complete. Call this exactly once, after you have fully decided to keep and after any required bottoming has already happened.\ntype /mtg-auto-goldfish-opening-hand/link_69c889ac360481918b1bf3dc5f989941/keep_hand = (: {\n// The game ID returned by the regular HTTP create-game endpoint, not by an MCP tool.\ngameId: string,\n// The exact cards in the final kept opening hand after all mulligans and any cards bottomed to the library.\ncards: string[],\n}) => any;\n// Return multiple cards to the top or bottom of the library for an existing game ID, optionally randomizing the order they are returned in.\ntype /mtg-auto-goldfish-opening-hand/link_69c889ac360481918b1bf3dc5f989941/return_cards_to_library = (: {\n// The game ID returned by the regular HTTP create-game endpoint, not by an MCP tool.\ngameId: string,\n// The cards to put back into the library. If randomizeOrder is false, they are inserted in list order, so the last card becomes the outermost card on the chosen side.\ncards: string,\n// Which end of the library to return the cards to.\nside: âtopâ | âbottomâ,\n// Whether to shuffle the returned cards before putting them back.\nrandomizeOrder: boolean,\n}) => any;â]}, âstatusâ: âfinished_successfullyâ, âend_turnâ: null, âweightâ: 1.0, âmetadataâ: {âis_visually_hidden_from_conversationâ: true, âinvoked_pluginâ: {}, âchime_versionâ: 1, ârequest_idâ: â4ed5255d-cc6f-4c3c-af4b-0e52b24991e0â, âmessage_typeâ: ânextâ, âturn_exchange_idâ: â7cc6b0ee-e18d-49ed-ba2c-6e28bfe0197aâ, âmodel_slugâ: âgpt-5-4-thinkingâ, âdefault_model_slugâ: âgpt-5-4-thinkingâ, âthinking_effortâ: âstandardâ, âparent_idâ: âd8c95f1b-caf7-4f43-81e4-8db54b59a723â, âmodel_switcher_denyâ: }, ârecipientâ: âallâ, âchannelâ: âcommentaryâ}, âconversation_idâ: â69c8d815-417c-83e8-a617-f8c9676dd092â, âerrorâ: null, âerror_codeâ: null}, âcâ: 48}
Tool call list:
Asking ChatGPT why the tool call failed (this is not from the same chat that the above network request data was from):
Thought for a couple of seconds
On draw 16, the tool call failed because the previously available turn-simulation endpoint disappeared and returned a âresource not foundâ error.
The exact failing endpoint was:
/mtg-auto-goldfish-turn-simulation/link_69c889d5b1848191abf6d574518badf6/draw_card_from_top
The exact error text was:
Resource not found: /mtg-auto-goldfish-turn-simulation/link_69c889d5b1848191abf6d574518badf6/draw_card_from_top.
After that, I re-listed available tools, and the turn-simulation draw endpoints were no longer present.