microsoft / microsoft/monaco-editor
[Bug] D is null
Open
Nobody has claimed this yet.
bug
firefox
- Dominant language
- JavaScript
- Stars
- 46.8k
- Forks
- 4.1k
- Avg merge
- 17h 58m
- Merged PRs (30d)
- 1
Description
Reproducible in vscode.dev or in VS Code Desktop?
- Not reproducible in vscode.dev or VS Code Desktop
Reproducible in the monaco editor playground?
- Not reproducible in the monaco editor playground
Monaco Editor Playground Link
No response
Monaco Editor Playground Code
No response
Reproduction Steps
Open any code.
Select everything (using your cursor) from the bottom line to the top line, you can overdoit by hovering outside the editor.
Actual (Problematic) Behavior
Errors on selection.
Expected Behavior
No errors on selection.
Additional Context
Uncaught Error: D is null
_doHitTestWithCaretPositionFromPoint@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:10121
doHitTest@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:11307
d/this.hitTestResult<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:642:17885
get value@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:11:18480
get target@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:642:17501
_createMouseTarget@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:2139
createMouseTarget@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:1840
_execute@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:24842
h/this._animationFrameDisposable<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:23694
execute@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:80766
Le@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:81094
e.scheduleAtNextAnimationFrame/<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:81333
FrameRequestCallback*e.scheduleAtNextAnimationFrame@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:81305
h@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:23628
start@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:23226
_onMouseDownThenMove@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:19122
start/<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:20392
startMonitoring/<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:638:56509
startMonitoring/<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:115:1299
EventListener.handleEvent*m@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:79137
u@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:79359
startMonitoring@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:115:1173
startMonitoring@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:638:56482
start@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:20322
_onMouseDown@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:17818
i/<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:14474
onMouseDown/<@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:638:55175
EventListener.handleEvent*m@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:79137
u@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:114:79359
onMouseDown@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:638:55123
i@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:14426
i@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:643:30384
re@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:646:25261
_createView@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:678:20942
_attachModel@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:678:18729
O@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:703:9622
_createInstance@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:606:1552
createInstance@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:606:977
P@https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min/vs/editor/editor.main.js:704:1213
@http://localhost:8080/:65:34
execCb@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:12861
check@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:6615
newContext/enable/</<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:9036
bind/<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:814
newContext/emit/<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:9498
each@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:289
emit@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:9469
check@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:7174
newContext/enable/</<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:9036
bind/<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:814
newContext/emit/<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:9498
each@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:289
emit@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:9469
check@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:7174
newContext/enable/</<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:9036
bind/<@https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.min.js:1:814
unexpectedErrorHandler errors.ts:26
setTimeout handler*f/this.unexpectedErrorHandler errors.ts:20
onUnexpectedError errors.ts:41
k errors.ts:56
execute dom.ts:309
Le dom.ts:348
scheduleAtNextAnimationFrame dom.ts:366
scheduleAtNextAnimationFrame dom.ts:366
h mouseHandler.ts:681
start mouseHandler.ts:650
_onMouseDownThenMove mouseHandler.ts:415
start mouseHandler.ts:489
startMonitoring editorDom.ts:258
startMonitoring globalPointerMoveMonitor.ts:102
m dom.ts:143
u dom.ts:164
startMonitoring globalPointerMoveMonitor.ts:91
startMonitoring editorDom.ts:253
start mouseHandler.ts:485
_onMouseDown mouseHandler.ts:327
i mouseHandler.ts:130
onMouseDown editorDom.ts:165
m dom.ts:143
u dom.ts:164
onMouseDown editorDom.ts:164
i mouseHandler.ts:130
i pointerHandler.ts:150
re view.ts:243
_createView codeEditorWidget.ts:1728
_attachModel codeEditorWidget.ts:1630
O standaloneCodeEditor.ts:455
_createInstance instantiationService.ts:119
createInstance instantiationService.ts:85
P standaloneEditor.ts:51
<anonymous> (index):65
execCb require.min.js:1
check require.min.js:1
enable require.min.js:1
bind require.min.js:1
emit require.min.js:1
each require.min.js:1
emit require.min.js:1
check require.min.js:1
enable require.min.js:1
bind require.min.js:1
emit require.min.js:1
each require.min.js:1
emit require.min.js:1
check require.min.js:1
enable require.min.js:1
bind require.min.js:1
2 [errors.ts:26:11](https://cdn.jsdelivr.net/npm/monaco-editor@0.48.0/min-maps/vs/editor/out-editor/vs/editor/file:/mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/errors.ts)
unexpectedErrorHandler errors.ts:26
(Async: setTimeout handler)
unexpectedErrorHandler errors.ts:20
onUnexpectedError errors.ts:41
k errors.ts:56
execute dom.ts:309
Le dom.ts:348
scheduleAtNextAnimationFrame dom.ts:366
(Async: FrameRequestCallback)
scheduleAtNextAnimationFrame dom.ts:366
h mouseHandler.ts:681
start mouseHandler.ts:650
_onMouseDownThenMove mouseHandler.ts:415
start mouseHandler.ts:489
startMonitoring editorDom.ts:258
startMonitoring globalPointerMoveMonitor.ts:102
(Async: EventListener.handleEvent)
m dom.ts:143
u dom.ts:164
startMonitoring globalPointerMoveMonitor.ts:91
startMonitoring editorDom.ts:253
start mouseHandler.ts:485
_onMouseDown mouseHandler.ts:327
i mouseHandler.ts:130
onMouseDown editorDom.ts:165
(Async: EventListener.handleEvent)
m dom.ts:143
u dom.ts:164
onMouseDown editorDom.ts:164
i mouseHandler.ts:130
i pointerHandler.ts:150
re view.ts:243
_createView codeEditorWidget.ts:1728
_attachModel codeEditorWidget.ts:1630
O standaloneCodeEditor.ts:455
construct self-hosted:2299
_createInstance instantiationService.ts:119
createInstance instantiationService.ts:85
P standaloneEditor.ts:51
<anonymous> (index):65
execCb require.min.js:1
check require.min.js:1
enable require.min.js:1
bind require.min.js:1
emit require.min.js:1
each require.min.js:1
emit require.min.js:1
check require.min.js:1
enable require.min.js:1
bind require.min.js:1
emit require.min.js:1
each require.min.js:1
emit require.min.js:1
check require.min.js:1
enable require.min.js:1
bind require.min.js:1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the error by selecting from the bottom line to above the top of the editor, including hovering outside it. Start with mouseHandler.ts and dom.ts at the reported stack frames, then inspect the hit-test path shown in the trace. Done means the selection completes without the “D is null” error in the Monaco editor playground or desktop reproduction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100