Many issues with canvas can be understood with the following:
Canvas supports multiple "documents" in a single context/session.
We create a document with a prompt. The response creates a document placeholder which includes a document name, type, and a reference to the content.
The name is based on the name that we provide. This is not a file name, it's a tag for reference.
If we upload a file the type is inferred but it's often wrong. (bug) We need to be explicit in our prompt about what kind of file is being used. This sets internal metadata like "code/tsx" which is later used for syntax highlighting.
Sometimes the document type is incorrect and we can't change it. (issue)
To populate the canvas we must request a document by (approximate) name and use phrases like "show the Foo document in the canvas" or "open Foo". Combining this request with others, like "open Foo and change ..." often results in bad changes. (bug)
A document can be updated even when off-canvas. This is a feature but may confuse the model.
The current document in canvas is often forgotten, causing the loading of a "doc2" loading into canvas with the header "doc1", and corrupting doc1. (bug) The model may insist doc2 is loaded when we tell it doc1 is loaded. (bug)
We can't create an empty named document. New documents must have starting content or it breaks. (bug) I address this with this prompt: "Create a new document named App of type TSX which has a single comment // as content."
An attempt to create multiple documents with a single prompt usually results in a "Oops" error. (bug)
In summary , the general issue is that the interface gets confused with creating, referring to, and updating document objects. Multiple documents in context, switched in/out with canvas, get confused. This isn't only caused by context size but that may be a factor.
I hope that helps OpenAI to address related issues and that it helps other users to understand the issues.