Skip to content

Source code files corrupted when server/tool attempts to base64 encode my files on read and write #841

@paulyuk

Description

@paulyuk

Describe the bug

I had an awesome day with GPT 5.0 and a more sophisticated prompt/spec that would do multi change batches with Github MCP, but in the end my files got corrupted. It was corrupted because the MCP seems to only work with base64 blobs and not actual text/code files from github (), and then it writes base64 back over my code files. Details below. I don't know if it matters (validating now) but I was using today's new GPT 5.0 preview.

Detailed response from agent mode

Cannot safely rewrite all remote main.bicep files here because I only have the base64 blobs (and the raw fetch tool returns truncated snippets with ellipses), so producing full, exact, whitespace‑preserving replacements (removing just the single deprecated output line) risks introducing corruption similar to the earlier csproj issue.
Summary of findings:
All sampled dotnet templates (eventgrid-blob, dotnet-sql) still contain: output APPLICATIONINSIGHTS_CONNECTION_STRING string = monitoring.outputs.connectionString
Likely present in the other language templates too (pattern is consistent across these AZD samples).
Root cause of earlier miss:
Infra removal step never executed; workflow focused only on csproj/package edits; no audit pass enforced absence of the output.

Steps to reproduce the behavior

  1. Run the prompt spec above
  2. Observe commits made by Github MCP server. See already done examples above.

Expected vs actual behavior

These are just source code files (xml, json, js) so text should come in and text should go out. Never base64.

Logs

Tool Call - call_nldxATetAhrrZMmutwn6wRL6__vscode-1754595944293
Request
id   : call_nldxATetAhrrZMmutwn6wRL6__vscode-1754595944293
tool : mcp_github_get_file_contents
args : {
  "owner": "Azure-Samples",
  "repo": "functions-quickstart-dotnet-azd-eventgrid-blob",
  "path": "src/src.csproj",
  "branch": "main"
}
Response
{"type":"file","encoding":"base64","size":1482,"name":"src.csproj","path":"src/src.csproj","content":"77u/PFByb2plY3QgU2RrPSJNaWNyb3NvZnQuTkVULlNkayI+CiAgPFByb3Bl\ncnR5R3JvdXA+CiAgICA8VGFyZ2V0RnJhbWV3b3JrPm5ldDguMDwvVGFyZ2V0\nRnJhbWV3b3JrPgogICAgPEF6dXJlRnVuY3Rpb25zVmVyc2lvbj52NDwvQXp1\ncmVGdW5jdGlvbnNWZXJzaW9uPgogICAgPE91dHB1dFR5cGU+RXhlPC9PdXRw\ndXRUeXBlPgogICAgPEltcGxpY2l0VXNpbmdzPmVuYWJsZTwvSW1wbGljaXRV\nc2luZ3M+CiAgICA8TnVsbGFibGU+ZW5hYmxlPC9OdWxsYWJsZT4KICAgIDxV\nc2VyU2VjcmV0c0lkPjc2MzM5NGRmLWI4MDctNGY4Mi04ZTUwLTI1MTZlNDBj\nM2M1YjwvVXNlclNlY3JldHNJZD4KICA8L1Byb3BlcnR5R3JvdXA+CiAgPEl0\nZW1Hcm91cD4KICAgIDxGcmFtZXdvcmtSZWZlcmVuY2UgSW5jbHVkZT0iTWlj\ncm9zb2Z0LkFzcE5ldENvcmUuQXBwIiAvPgogICAgPFBhY2thZ2VSZWZlcmVu\nY2UgSW5jbHVkZT0iTWljcm9zb2Z0LkFwcGxpY2F0aW9uSW5zaWdodHMuV29y\na2VyU2VydmljZSIgVmVyc2lvbj0iMi4yMy4wIiAvPiAKICAgIDxQYWNrYWdl\nUmVmZXJlbmNlIEluY2x1ZGU9Ik1pY3Jvc29mdC5BenVyZS5GdW5jdGlvbnMu\nV29ya2VyLkFwcGxpY2F0aW9uSW5zaWdodHMiIFZlcnNpb249IjIuMC4wIiAv\nPiAKICAgIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9Ik1pY3Jvc29mdC5B\nenVyZS5GdW5jdGlvbnMuV29ya2VyIiBWZXJzaW9uPSIyLjAuMCIgLz4KICAg\nIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9Ik1pY3Jvc29mdC5BenVyZS5G\ndW5jdGlvbnMuV29ya2VyLkV4dGVuc2lvbnMuSHR0cC5Bc3BOZXRDb3JlIiBW\nZXJzaW9uPSIyLjAuMSIgLz4KICAgIDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1\nZGU9Ik1pY3Jvc29mdC5BenVyZS5GdW5jdGlvbnMuV29ya2VyLkV4dGVuc2lv\nbnMuU3RvcmFnZS5CbG9icyIgVmVyc2lvbj0iNi42LjEiIC8+CiAgICA8UGFj\na2FnZVJlZmVyZW5jZSBJbmNsdWRlPSJNaWNyb3NvZnQuQXp1cmUuRnVuY3Rp\nb25zLldvcmtlci5TZGsiIFZlcnNpb249IjIuMC4yIiAvPgogIDwvSXRlbUdy\nb3VwPgogIDxJdGVtR3JvdXA+CiAgICA8Tm9uZSBVcGRhdGU9Imhvc3QuanNv\nbiI+CiAgICAgIDxDb3B5VG9PdXRwdXREaXJlY3Rvcnk+UHJlc2VydmVOZXdl\nc3Q8L0NvcHlUb091dHB1dERpcmVjdG9yeT4KICAgIDwvTm9uZT4KICAgIDxO\nb25lIFVwZGF0ZT0ibG9jYWwuc2V0dGluZ3MuanNvbiI+CiAgICAgIDxDb3B5\nVG9PdXRwdXREaXJlY3Rvcnk+UHJlc2VydmVOZXdlc3Q8L0NvcHlUb091dHB1\ndERpcmVjdG9yeT4KICAgICAgPENvcHlUb1B1Ymxpc2hEaXJlY3Rvcnk+TmV2\nZXI8L0NvcHlUb1B1Ymxpc2hEaXJlY3Rvcnk+CiAgICA8L05vbmU+CiAgPC9J\ndGVtR3JvdXA+CiAgPEl0ZW1Hcm91cD4KICAgIDxVc2luZyBJbmNsdWRlPSJT\neXN0ZW0uVGhyZWFkaW5nLkV4ZWN1dGlvbkNvbnRleHQiIEFsaWFzPSJFeGVj\ndXRpb25Db250ZXh0IiAvPgogIDwvSXRlbUdyb3VwPgo8L1Byb2plY3Q+\n","sha":"dfedb117726cf0cddfb5fe0f7964d7f60689299d","url":"https://api.github.com/repos/Azure-Samples/functions-quickstart-dotnet-azd-eventgrid-blob/contents/src/src.csproj?ref=main","git_url":"https://api.github.com/repos/Azure-Samples/functions-quickstart-dotnet-azd-eventgrid-blob/git/blobs/dfedb117726cf0cddfb5fe0f7964d7f60689299d","html_url":"https://github.com/Azure-Samples/functions-quickstart-dotnet-azd-eventgrid-blob/blob/main/src/src.csproj","download_url":"https://raw.githubusercontent.com/Azure-Samples/functions-quickstart-dotnet-azd-eventgrid-blob/main/src/src.csproj"}
Thinking

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions