Skip to content

Bug: Null reference error when pasting attachments on canvas #369

@ProjectLiminality

Description

@ProjectLiminality

Bug Report: Null reference error when pasting attachments on canvas

Summary: A null pointer exception occurs in the CustomAttachmentLocation handler when attempting to paste content while editing text on a DreamSong canvas, causing the paste operation to fail. This happens because the code attempts to read the 'basename' property from a null object.

Category: Bug

Estimated Complexity: Moderate

Error:
Cannot read properties of null (reading 'basename')

Error ID: IB-ERR-ced30d89

Raw Data

Bug Report

Error: Cannot read properties of null (reading 'basename')

User Description:
I was editing a text element on the DreamSong canvas

Environment:

  • InterBrain: v0.9.0
  • Obsidian: v1.8.10
  • Platform: macOS (10.15.7 (Apple Silicon))

Stack Trace:

TypeError: Cannot read properties of null (reading 'basename')
    at CustomAttachmentLocation.eval (plugin:obsidian-custom-attachment-location:150:34)
    at Generator.next (<anonymous>)
    at eval (plugin:obsidian-custom-attachment-location:43:61)
    at new Promise (<anonymous>)
    at __async (plugin:obsidian-custom-attachment-location:27:10)
    at CustomAttachmentLocation.handlePaste (plugin:obsidian-custom-attachment-location:148:12)
    at t.tryTrigger (app://obsidian.md/app.js:1:1127350)
    at t.trigger (app://obsidian.md/app.js:1:1127283)
    at t.trigger (app://obsidian.md/app.js:1:2578317)
    at e.handlePaste (app://obsidian.md/app.js:1:1204553)
Console Logs (last 50)
[2025-12-16T12:44:05.003Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:07.460Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:11.731Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:13.882Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:19.024Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:21.031Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:24.111Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:31.611Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:33.691Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:35.786Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:38.477Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:44.178Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:46.250Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:51.208Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:53.767Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:56.032Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:44:58.177Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:00.315Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:02.676Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:12.065Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:17.054Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:19.983Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:21.993Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:24.298Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:45:26.346Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:00.171Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:04.763Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:09.881Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:11.912Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:13.915Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:16.089Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:18.376Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:20.621Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:22.668Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:25.043Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:27.065Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:29.317Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:31.505Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:33.543Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:45.913Z] [LOG] Handle File Open
[2025-12-16T12:46:52.234Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:46:54.417Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:47:49.797Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:47:51.810Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:47:52.613Z] [LOG] Handle File Open
[2025-12-16T12:47:53.893Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:48:03.825Z] [LOG] Handle File Open
[2025-12-16T12:48:05.051Z] [LOG] Handle Paste
[2025-12-16T12:48:05.834Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
[2025-12-16T12:48:09.172Z] [LOG] DreamSongFullScreenView render called {
  "hasRoot": true,
  "hasBlocks": true,
  "dreamNodeName": "Video Project"
}
Store State Snapshot
{
  "spatialLayout": "liminal-web",
  "selectedNode": {
    "id": "b320f704-c5b1-456c-ba9e-e4b896d7beb2",
    "name": "Video Project",
    "type": "dream"
  },
  "copilotMode": {
    "isActive": false,
    "conversationPartner": null
  },
  "editMode": {
    "isActive": false
  },
  "creationState": {
    "isCreating": false
  },
  "searchInterface": {
    "isActive": false,
    "currentQuery": ""
  },
  "constellationData": {
    "nodeCount": 42
  }
}

Navigation History:

  • fd95a30c-dbac-4ac4-9aff-34c60a122184
  • b320f704-c5b1-456c-ba9e-e4b896d7beb2

Error ID: IB-ERR-ced30d89


Auto-generated by InterBrain Feedback System


AI-refined by InterBrain Feedback System

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions