Change:
When working a python jupyter notebook within vscode, I started occasionally seeing this notification: ! With this in the dev console: cc Version: 1.90.0-insider Commit: Date: 2024-05-03T18:08:45.720Z Electron: 28.2.8 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Darwin arm64 23.4.0
I still see this in Version: 1.90.0-insider Commit: Date: 2024-05-10T06:01:29.967Z Electron: 28.2.8 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Darwin arm64 23.4.0 ! !
The most consistent repro I found: auto save a cell with ctrl+enter (so that focus moves to the container) with the cell contents press escape and ctrl+enter again to close the input and then re-run the cell within the 1 second auto-save delay :bug: notification about save failure This specific set of operations will put the edit that removes the output last, and since it started with no output, nothing actually changes for that edit, but the version is still incremented. The fix should take care of any case where an edit doesn't actually update anything.
The latest fix is not released yet, but I started seeing ! with Version: 1.90.0-insider Commit: Date: 2024-05-10T18:24:16.069Z Electron: 29.3.1 ElectronBuildId: Chromium: 122.0.6261.156 20.9.0 V8: 12.2.281.27-electron.0 OS: Darwin arm64 23.4.0
that's probably the same error, but the catch block throws - should be fixed in
Good morning, I am getting a similar error message. I am connected to a VM through SSH. I am able to edit & save the Jupyter Notebook until I run any cell. After running a cell I can no longer save the notebook, even after the cell has finished running. ! Info: Version: 1.90.0-insider (user setup) Commit: Date: 2024-05-13T05:48:48.053Z Electron: 29.3.1 ElectronBuildId: Chromium: 122.0.6261.156 20.9.0 V8: 12.2.281.27-electron.0 OS: Windows_NT x64 10.0.
thanks for the update, sounds like the latest change might have made things worse, I'll take another look.
- is there a specific cell execution behavior that causes this, or just when any cell executes? how long the cell runs for if it produces output if it has an call
I think I found the issue introduced in my previous change

Discussion:
}; class NotebookEventEmitter extends PauseableEmitter<NotebookTextModelChangedEvent> { <ins> get isEmpty() { return this._eventQueue.isEmpty(); } </ins> isDirtyEvent() { for (const e of this._eventQueue) { for (let i = 0; i < e.rawEvents.length; i++) {

this._doApplyEdits(rawEdits, synchronous, computeUndoRedo, beginSelectionState, undoRedoGroup); return true; } finally { <del> // Update selection and versionId after applying edits. const endSelections = endSelectionsComputer(); this._increaseVersionId(this._operationManager.isUndoStackEmpty() && !this._pauseableEmitter.isDirtyEvent()); </del> <ins> if (!this._pauseableEmitter.isEmpty) { // Update selection and versionId after applying edits. const endSelections = endSelectionsComputer(); this._increaseVersionId(this._operationManager.isUndoStackEmpty() && !this._pauseableEmitter.isDirtyEvent()); </ins> <del> // Finalize undo element this._operationManager.pushStackElement(this._alternativeVersionId, endSelections); </del> <ins> // Finalize undo element this._operationManager.pushStackElement(this._alternativeVersionId, endSelections); </ins> <del> // Broadcast changes this._pauseableEmitter.fire({ rawEvents: [], versionId: this.versionId, synchronous: synchronous, endSelectionState: endSelections }); this._pauseableEmitter.resume(); </del> <ins> // Broadcast changes this._pauseableEmitter.fire({ rawEvents: [], versionId: this.versionId, synchronous: synchronous, endSelectionState: endSelections }); this._pauseableEmitter.resume(); } </ins> } }