diff --git a/src/developer/debug/zxdb/client/system_impl.cc b/src/developer/debug/zxdb/client/system_impl.cc
index 98cc24fc2f93cf69e62a5e902f4133fe0e0857cc..649231da5d97babc0495d1496d8b8ddfaa2781d8 100644
--- a/src/developer/debug/zxdb/client/system_impl.cc
+++ b/src/developer/debug/zxdb/client/system_impl.cc
@@ -4,6 +4,7 @@
 
 #include "src/developer/debug/zxdb/client/system_impl.h"
 
+#include <filesystem>
 #include <set>
 
 #include "src/developer/debug/shared/logging/debug.h"
@@ -292,6 +293,9 @@ void SystemImpl::OnSettingChanged(const SettingStore& store,
     auto path = store.GetString(setting_name);
 
     if (!path.empty()) {
+      std::error_code ec;
+      std::filesystem::create_directory(
+          std::filesystem::path(path) / ".build-id", ec);
       GetSymbols()->build_id_index().AddSymbolSource(path);
     }
   } else if (setting_name == ClientSettings::System::kSymbolServers) {