microsoft / microsoft/monaco-editor

[Bug] D is null

Open
#4,527 6 comments 0 reactions 0 assignees View on GitHub

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?
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.