Settings (1.13): navigating during the page-transition animation can blank/wedge the settings window

Steps to reproduce:

  1. Open Settings → Appearance (any tab with sub-pages works; no community plugins needed — reproduced in the sandbox vault)
  2. Click a sub-page row (e.g. CSS snippets), immediately click the back button, and immediately click another sub-page row — i.e. navigate again while the ~200 ms slide transition is still running

Did you follow the troubleshooting guide? Yes — reproduces in the sandbox vault with restricted mode on.

Expected result: navigation queues or ignores clicks until the transition completes.

Actual result: the settings window can end up fully blank (no visible tab content; every .vertical-tab-content detached) or stop responding to page-row clicks. The console sometimes shows:

TypeError: Cannot read properties of null (reading 'insertAfter')
    at openPage
TypeError: Cannot read properties of null (reading 'insertBefore')
    at closePage

The transition helper reads parentElement of the outgoing content element, which is null when a prior transition already detached it; overlapping open+close animations can detach both elements. Closing and reopening the settings window recovers. Any writes made while the window is wedged do persist — the UI just stops reflecting them, which makes the state confusing (e.g. list rows and their empty-state placeholder visible simultaneously).

This is easy to hit in plugins that migrated to getSettingDefinitions() with several sub-pages, but the repro above is core-only.

Environment: Obsidian 1.13.4 (installer 1.13.4), macOS. Reproduces with restricted mode on.

I can’t reproduce or I don’t understand.

  1. PLease, make a screen recording of this happening in the sandbox vault
  2. Copy/paste the output of show debug info there.

Screen recording attached (Obsidian Sandbox vault, restricted mode on, ~14 s).

What the video shows:

  1. 0–8 s, normal pace: open CSS snippets → back → open Interface font → back, waiting for each slide to finish. Everything works.
  2. ~9 s, the burst: the same navigation repeated with each click ~120 ms after the previous — i.e. every click lands while the prior slide animation (~200 ms) is still running.
  3. Rest of the video: the content pane is blank and stays blank. Clicking page rows does nothing.

The key to reproducing by hand is clicking during the slide transition — at a normal pace it never triggers (which is presumably why it didn’t reproduce for you). Three fast alternating clicks between a page row and the back chevron is the most reliable manual trigger.

Two recovery observations that may help locate it: clicking a different tab in the left sidebar restores the content pane, as does closing and reopening the settings window. So the wedge is in the tab’s page-content stack, not the whole window.

Show debug info from the same sandbox session:

SYSTEM INFO:
	Obsidian version: 1.13.4
	Installer version: 1.13.4
	Operating system: Darwin Kernel Version 25.5.0: Tue Jun  9 22:28:29 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6030 25.5.0
	Login status: logged in
	Language: en
	Catalyst license: none
	Insider build toggle: off
	Live preview: on
	Base theme: adapt to system
	Community theme: none
	Snippets enabled: 0
	Restricted mode: on

RECOMMENDATIONS:
	none

When it wedges with dev tools open, the console shows TypeError: Cannot read properties of null (reading 'insertAfter') in openPage (or insertBefore in closePage) — consistent with the transition helper reading parentElement of a content element that a previous, still-running transition already detached.

obsidian-1.13-settings-race-repro.mp4.zip (518.3 KB)

will be fixed in 1.13.5. ETA unknown.