Visual Bug created by the Settings' Dropdown API

When trying to create a Dropdown for my plugin’s settings I found a nasty little visual bug with the API.

Steps to reproduce

Simply try to call .addOptions() after .setValue() when creating a Dropdown in the settings.

Expected result

The dropdown to have the correct value when “re-opening” the settings.

Actual result

When the settings are closed and then re-opened, the value of the dropdown is wrong.

The first option in the Record<string, string> passed to .addOptions() will override the value that was set.


  • Operating system: Windows (WSL2)
  • Obsidian version: v0.12.15

Additional information

Here is a larger bit of code to help contextualize the issue:

dropdownSetting(name: string, desc: string, options: Record<string, string>) {
    const key = lodash.camelCase(name);
    new Setting(this.containerEl)
      .addDropdown((dropdown: DropdownComponent) => {
          // These 2 lines 👇
          // These 2 lines ☝

The problem only occurs when those 2 line’s order is reversed.