GUI crashes on startup after creating a wallet previously #918

issue rkrux openend this issue on December 17, 2025
  1. rkrux commented at 12:31 pm on December 17, 2025: contributor

    Is there an existing issue for this?

    • I have searched the existing issues

    Current behaviour

    Note: The issue is present in testnet too, not only regtest.

    The GUI crashes in regtest immediately on start. It did work once initially but has been crashing since, tried quite a few times.

    Expected behaviour

    The GUI should not crash in regtest, just like it doesn’t in main or test environments.

    Steps to reproduce

    Regtest conf file to use:

    0➜  Bitcoin cat $BITCOIN_DATA_DIR/bitcoin-reg.conf
    1regtest=1
    2[regtest]
    3port=28333
    4rpcport=28332
    5rpcuser=test
    6rpcpassword=test
    7bind=127.0.0.1:28334
    8bind=127.0.0.1:28335=onion
    

    New data directory setup:

    0➜  ~ mkdir /tmp/gui-node-1
    1➜  ~ cp $BITCOIN_DATA_DIR/bitcoin-reg.conf /tmp/gui-node-1
    2➜  ~ cd /tmp/gui-node-1
    3➜  gui-node-1 l
    4total 8
    5drwxr-xr-x   3 rkrux  wheel    96B Dec 19 15:48 .
    6drwxrwxrwt  10 root    wheel   320B Dec 19 15:46 ..
    7-rw-r--r--   1 rkrux  wheel   123B Dec 19 15:48 bitcoin-reg.conf
    

    Run GUI (bitcoin-qt): Works first time, no wallet right now.

    0➜  ~ $BITCOIN_BUILD_BIN_DIR/bitcoin-qt -datadir=/tmp/gui-node-1 -conf=/tmp/gui-node-1/bitcoin-reg.conf
    

    Create a wallet within the GUI (wallet name eg: gui-node-wallet) and close the GUI.

    Run GUI (bitcoin-qt) again - fails now with the below error:

    0➜  ~ $BITCOIN_BUILD_BIN_DIR/bitcoin-qt -datadir=/tmp/gui-node-1 -conf=/tmp/gui-node-1/bitcoin-reg.conf
    1Error: SQLiteDatabase: Failed to configure serialized threading mode: bad parameter or other API misuse
    

    Data directory state now:

     0➜  gui-node-1 l /tmp/gui-node-1
     1total 8
     2drwxr-xr-x   4 rkrux  wheel   128B Dec 19 16:08 .
     3drwxrwxrwt  10 root    wheel   320B Dec 19 16:07 ..
     4-rw-r--r--   1 rkrux  wheel   123B Dec 19 16:07 bitcoin-reg.conf
     5drwx------  13 rkrux  wheel   416B Dec 19 16:11 regtest
     6➜  gui-node-1 l /tmp/gui-node-1/regtest/
     7total 600
     8drwx------  13 rkrux  wheel   416B Dec 19 16:11 .
     9drwxr-xr-x   4 rkrux  wheel   128B Dec 19 16:08 ..
    10-rw-------   1 rkrux  wheel     0B Dec 19 16:08 .lock
    11-rw-------   1 rkrux  wheel    37B Dec 19 16:11 anchors.dat
    12-rw-------   1 rkrux  wheel   221B Dec 19 16:08 banlist.json
    13drwx------   7 rkrux  wheel   224B Dec 19 16:08 blocks
    14drwx------   7 rkrux  wheel   224B Dec 19 16:10 chainstate
    15-rw-------   1 rkrux  wheel    18K Dec 19 16:11 debug.log
    16-rw-------   1 rkrux  wheel   242K Dec 19 16:11 fee_estimates.dat
    17-rw-------   1 rkrux  wheel    27B Dec 19 16:11 mempool.dat
    18-rw-------   1 rkrux  wheel   4.1K Dec 19 16:11 peers.dat
    19-rw-------   1 rkrux  wheel   242B Dec 19 16:11 settings.json
    20drwx------   3 rkrux  wheel    96B Dec 19 16:11 wallets
    21➜  gui-node-1 l /tmp/gui-node-1/regtest/wallets
    22total 0
    23drwx------   3 rkrux  wheel    96B Dec 19 16:11 .
    24drwx------  13 rkrux  wheel   416B Dec 19 16:11 ..
    25drwx------   3 rkrux  wheel    96B Dec 19 16:11 gui-node-wallet
    26➜  gui-node-1 l /tmp/gui-node-1/regtest/wallets/gui-node-wallet
    27total 48
    28drwx------  3 rkrux  wheel    96B Dec 19 16:11 .
    29drwx------  3 rkrux  wheel    96B Dec 19 16:11 ..
    30-rw-------  1 rkrux  wheel    24K Dec 19 16:11 wallet.dat
    

    Relevant log output

     02025-12-19T10:48:12Z Using data directory /tmp/gui-node-1/regtest
     12025-12-19T10:48:12Z Config file: /tmp/gui-node-1/bitcoin-reg.conf
     22025-12-19T10:48:12Z Config file arg: regtest="1"
     32025-12-19T10:48:12Z Config file arg: [regtest] bind="127.0.0.1:28334"
     42025-12-19T10:48:12Z Config file arg: [regtest] bind="127.0.0.1:28335=onion"
     52025-12-19T10:48:12Z Config file arg: [regtest] port="28333"
     62025-12-19T10:48:12Z Config file arg: [regtest] rpcpassword=****
     72025-12-19T10:48:12Z Config file arg: [regtest] rpcport="28332"
     82025-12-19T10:48:12Z Config file arg: [regtest] rpcuser=****
     92025-12-19T10:48:12Z Setting file arg: wallet = ["gui-node-wallet"]
    102025-12-19T10:48:12Z Command-line arg: conf="/tmp/gui-node-1/bitcoin-reg.conf"
    112025-12-19T10:48:12Z Command-line arg: datadir="/tmp/gui-node-1"
    122025-12-19T10:48:12Z Using at most 125 automatic connections (1024 file descriptors available)
    132025-12-19T10:48:12Z scheduler thread start
    142025-12-19T10:48:12Z Using wallet directory /tmp/gui-node-1/regtest/wallets
    152025-12-19T10:48:12Z Using SQLite Version 3.43.2
    162025-12-19T10:48:12Z init message: Verifying wallet(s)172025-12-19T10:48:12Z [warning] SQLite Error. Code: 21. Message: misuse at line 185687 of [1b37c146ee]
    182025-12-19T10:48:12Z [error] SQLiteDatabase: Failed to configure serialized threading mode: bad parameter or other API misuse
    19
    202025-12-19T10:48:14Z Shutdown in progress...
    212025-12-19T10:48:14Z scheduler thread exit
    222025-12-19T10:48:14Z Shutdown done
    

    How did you obtain Bitcoin Core

    Compiled from source

    What version of Bitcoin Core are you using?

    master@13891a8a685d255cb13dd5018e3d5ccc18b07c34

    Operating system and version

    MacOS Sequoia (15.4)

    Machine specifications

    No response

  2. furszy commented at 3:32 pm on December 17, 2025: member
    Can you check the directory permissions please
  3. maflcko added the label macOS on Dec 17, 2025
  4. maflcko added the label Wallet on Dec 17, 2025
  5. maflcko commented at 6:29 pm on December 17, 2025: contributor
    Is this really gui-specific? Does it not happen with bitcoind?
  6. rkrux commented at 10:53 am on December 18, 2025: contributor

    Is this really gui-specific? Does it not happen with bitcoind?

    Yes, it seems to be GUI specific, and doesn’t happen with bitcoind alone.

    Can you check the directory permissions please

    I did and noticed that the regtest and testnet subdirectories didn’t have the r|x permissions for group and others, unlike the data directory. I gave those permissions to them but I don’t believe it was the issue - when I was looking into the directory permissions, I also noticed that one regtest subdirectory was present within the regtest subdirectory. I rm-rf’ed it and ran the GUI again, it worked then.

    However, the GUI seems to be creating this additional subdirectory every time it is run, and I have to delete it every time, otherwise the same error pops up. If I run the GUI without the -walletdir argument so that the additional subdirectory is not created, the GUI runs but it is not able to find the already present wallets that I have in regtest, so this argument seems necessary to me, but at the cost of deleting the additional subdirectory after the next run.

  7. maflcko commented at 11:00 am on December 18, 2025: contributor

    I don’t think datadir is supposed to include the regtest portion?

    Otherwise, the dir structure will end with regtest/regtest, no?

  8. maflcko commented at 11:05 am on December 18, 2025: contributor

    At least that is what I get when running:

    0$ ./bld-cmake/bin/bitcoin-qt -regtest -datadir=/tmp/regtest/ -printtoconsole | grep 'Using data'
    12025-12-18T11:03:50Z Using data directory /tmp/regtest/regtest
    

    You are setting regtest in the conf file, so that is different, and it may be good to check what the expected interaction is there:

    02025-12-17T10:22:16Z Default data directory /Users/rkrux/Library/Application Support/Bitcoin
    12025-12-17T10:22:16Z Using data directory /Users/rkrux/Library/Application Support/Bitcoin/regtest
    22025-12-17T10:22:16Z Config file: /Users/rkrux/Library/ApplicationSupport/Bitcoin/bitcoin-reg.conf
    32025-12-17T10:22:16Z Config file arg: regtest="1"
    
  9. rkrux commented at 11:10 am on December 18, 2025: contributor

    I don’t think datadir is supposed to include the regtest portion?

    If I run without the regtest portion, I get the same error. If I run without it and without the -walletdir as well, then too the same error. I suspect that the GUI always tries to create the regtest subdirectory and errors out if it’s already present - at least with my combination of the arguments and configuration file.

  10. rkrux commented at 11:14 am on December 18, 2025: contributor

    From the debug log:

     02025-12-18T11:05:02Z Default data directory /Users/rkrux/Library/Application Support/Bitcoin
     12025-12-18T11:05:02Z Using data directory /Users/rkrux/Library/ApplicationSupport/Bitcoin/regtest/regtest
     22025-12-18T11:05:02Z Config file: /Users/rkrux/Library/ApplicationSupport/Bitcoin/bitcoin-reg.conf
     32025-12-18T11:05:02Z Config file arg: regtest="1"
     42025-12-18T11:05:02Z Config file arg: [regtest] bind="127.0.0.1:28334"
     52025-12-18T11:05:02Z Config file arg: [regtest] bind="127.0.0.1:28335=onion"
     62025-12-18T11:05:02Z Config file arg: [regtest] port="28333"
     72025-12-18T11:05:02Z Config file arg: [regtest] rpcpassword=****
     82025-12-18T11:05:02Z Config file arg: [regtest] rpcport="28332"
     92025-12-18T11:05:02Z Config file arg: [regtest] rpcuser=****
    102025-12-18T11:05:02Z Command-line arg: conf="/Users/rkrux/Library/ApplicationSupport/Bitcoin/bitcoin-reg.conf"
    112025-12-18T11:05:02Z Command-line arg: datadir="/Users/rkrux/Library/ApplicationSupport/Bitcoin/regtest"
    122025-12-18T11:05:02Z Command-line arg: walletdir="/Users/rkrux/Library/ApplicationSupport/Bitcoin/regtest/wallets"
    132025-12-18T11:05:02Z Using at most 125 automatic connections (1024 file descriptors available)
    142025-12-18T11:05:02Z scheduler thread start
    152025-12-18T11:05:02Z Using wallet directory /Users/rkrux/Library/Application Support/Bitcoin/regtest/wallets
    162025-12-18T11:05:02Z Using SQLite Version 3.43.2
    172025-12-18T11:05:02Z init message: Verifying wallet(s)…
    182025-12-18T11:05:02Z Using /16 prefix for IP bucketing
    192025-12-18T11:05:02Z init message: Loading P2P addresses…
    
  11. maflcko commented at 1:13 pm on December 18, 2025: contributor

    Actually, parsing the conf file should clear the old/stale datadir value:

    0src/common/config.cpp-    // If datadir is changed in .conf file:
    1src/common/config.cpp:    ClearPathCache();
    2src/common/config.cpp-    if (!CheckDataDirOption(*this)) {
    3src/common/config.cpp-        error = strprintf("specified data directory \"%s\" does not exist.", GetArg("-datadir", ""));
    4src/common/config.cpp-        return false;
    5src/common/config.cpp-    }
    

    Can you reproduce this on Linux?

  12. rkrux commented at 9:57 am on December 19, 2025: contributor

    Can you reproduce this on Linux?

    Sorry, I don’t have access to a Linux machine.

    You are setting regtest in the conf file, so that is different, and it may be good to check what the expected interaction is there:

    I will spend some time checking the expected interaction.

  13. maflcko commented at 10:05 am on December 19, 2025: contributor

    Can you reproduce this on Linux?

    Sorry, I don’t have access to a Linux machine.

    Fair. It may be possible to install a Linux VM, but this may be tedious.

    Another thing could be to create exact steps to reproduce, starting from a fresh folder:

    0mkdir new_datadir
    1echo 'regtest=1' > conf
    2...
    

    This way, other devs on macOS can try to reproduce it.

  14. rkrux commented at 10:49 am on December 19, 2025: contributor

    Another thing could be to create exact steps to reproduce, starting from a fresh folder:

    Good idea - done, helped me in understanding the issue from scratch. Also, updating the issue description with these steps.

    Regtest conf file to use:

    0➜  Bitcoin cat $BITCOIN_DATA_DIR/bitcoin-reg.conf
    1regtest=1
    2[regtest]
    3port=28333
    4rpcport=28332
    5rpcuser=test
    6rpcpassword=test
    7bind=127.0.0.1:28334
    8bind=127.0.0.1:28335=onion
    

    New data directory setup:

    0➜  ~ mkdir /tmp/gui-node-1
    1➜  ~ cp $BITCOIN_DATA_DIR/bitcoin-reg.conf /tmp/gui-node-1
    2➜  ~ cd /tmp/gui-node-1
    3➜  gui-node-1 l
    4total 8
    5drwxr-xr-x   3 rkrux  wheel    96B Dec 19 15:48 .
    6drwxrwxrwt  10 root    wheel   320B Dec 19 15:46 ..
    7-rw-r--r--   1 rkrux  wheel   123B Dec 19 15:48 bitcoin-reg.conf
    

    Run GUI (bitcoin-qt): Works first time, no wallet right now.

    0➜  ~ $BITCOIN_BUILD_BIN_DIR/bitcoin-qt -datadir=/tmp/gui-node-1 -conf=/tmp/gui-node-1/bitcoin-reg.conf
    

    Create a wallet within the GUI (wallet name eg: gui-node-wallet) and close the GUI.

    Run GUI (bitcoin-qt) again - fails now with the below error:

    0➜  ~ $BITCOIN_BUILD_BIN_DIR/bitcoin-qt -datadir=/tmp/gui-node-1 -conf=/tmp/gui-node-1/bitcoin-reg.conf
    1Error: SQLiteDatabase: Failed to configure serialized threading mode: bad parameter or other API misuse
    

    Data directory state now:

     0➜  gui-node-1 l /tmp/gui-node-1
     1total 8
     2drwxr-xr-x   4 rkrux  wheel   128B Dec 19 16:08 .
     3drwxrwxrwt  10 root    wheel   320B Dec 19 16:07 ..
     4-rw-r--r--   1 rkrux  wheel   123B Dec 19 16:07 bitcoin-reg.conf
     5drwx------  13 rkrux  wheel   416B Dec 19 16:11 regtest
     6➜  gui-node-1 l /tmp/gui-node-1/regtest/
     7total 600
     8drwx------  13 rkrux  wheel   416B Dec 19 16:11 .
     9drwxr-xr-x   4 rkrux  wheel   128B Dec 19 16:08 ..
    10-rw-------   1 rkrux  wheel     0B Dec 19 16:08 .lock
    11-rw-------   1 rkrux  wheel    37B Dec 19 16:11 anchors.dat
    12-rw-------   1 rkrux  wheel   221B Dec 19 16:08 banlist.json
    13drwx------   7 rkrux  wheel   224B Dec 19 16:08 blocks
    14drwx------   7 rkrux  wheel   224B Dec 19 16:10 chainstate
    15-rw-------   1 rkrux  wheel    18K Dec 19 16:11 debug.log
    16-rw-------   1 rkrux  wheel   242K Dec 19 16:11 fee_estimates.dat
    17-rw-------   1 rkrux  wheel    27B Dec 19 16:11 mempool.dat
    18-rw-------   1 rkrux  wheel   4.1K Dec 19 16:11 peers.dat
    19-rw-------   1 rkrux  wheel   242B Dec 19 16:11 settings.json
    20drwx------   3 rkrux  wheel    96B Dec 19 16:11 wallets
    21➜  gui-node-1 l /tmp/gui-node-1/regtest/wallets
    22total 0
    23drwx------   3 rkrux  wheel    96B Dec 19 16:11 .
    24drwx------  13 rkrux  wheel   416B Dec 19 16:11 ..
    25drwx------   3 rkrux  wheel    96B Dec 19 16:11 gui-node-wallet
    26➜  gui-node-1 l /tmp/gui-node-1/regtest/wallets/gui-node-wallet
    27total 48
    28drwx------  3 rkrux  wheel    96B Dec 19 16:11 .
    29drwx------  3 rkrux  wheel    96B Dec 19 16:11 ..
    30-rw-------  1 rkrux  wheel    24K Dec 19 16:11 wallet.dat
    
  15. rkrux commented at 10:52 am on December 19, 2025: contributor
    In the above experiment, I didn’t try changing the data dir or adding the walletdir arg so that the issue is apparent with only one set of arguments and dirs. That’s why I believe there is no additional regtest subdirectory created.
  16. furszy commented at 3:51 pm on December 20, 2025: member
    @rkrux, I haven’t been able to reproduce it, but have an idea of what might be happening. Please try this branch: https://github.com/furszy/bitcoin-core/tree/2025_wallet_db_config_engine and let me know if the issue still occurs. Will rework the fix properly and detail the scenario.
  17. rkrux commented at 9:43 am on December 22, 2025: contributor

    @furszy Thanks for looking into this, I applied the diff in this commit https://github.com/furszy/bitcoin-core/commit/f01a007ace2190be595d852e522544ba4035de4c like below:

     0diff --git a/src/wallet/load.cpp b/src/wallet/load.cpp
     1index 84ee9cf10b..2135d21771 100644
     2--- a/src/wallet/load.cpp
     3+++ b/src/wallet/load.cpp
     4@@ -51,8 +51,6 @@ bool VerifyWallets(WalletContext& context)
     5     }
     6 
     7     LogInfo("Using wallet directory %s", fs::PathToString(GetWalletDir()));
     8-    // Print general DB information
     9-    LogDBInfo();
    10 
    11     chain.initMessage(_("Verifying wallet(s)…"));
    12 
    13diff --git a/src/wallet/sqlite.cpp b/src/wallet/sqlite.cpp
    14index e72455a3be..f86db90bca 100644
    15--- a/src/wallet/sqlite.cpp
    16+++ b/src/wallet/sqlite.cpp
    17@@ -132,6 +132,11 @@ SQLiteDatabase::SQLiteDatabase(const fs::path& dir_path, const fs::path& file_pa
    18         if (ret != SQLITE_OK) {
    19             throw std::runtime_error(strprintf("SQLiteDatabase: Failed to initialize SQLite: %s\n", sqlite3_errstr(ret)));
    20         }
    21+
    22+        static std::once_flag flag_version;
    23+        std::call_once(flag_version, []() {
    24+            LogInfo("Using SQLite Version %s", SQLiteDatabaseVersion());
    25+        });
    26     }
    27 
    28     try {
    29(END)
    

    The error still persists. One thing that I noted earlier and now too is that even while creating the wallet first time, this error is thrown but the GUI doesn’t crash. However, upon retrying the creation, the error goes away and the wallet is created. But, later upon restarting the GUI the error is thrown again, crashing the GUI.

  18. furszy commented at 2:49 pm on December 22, 2025: member

    @rkrux, I assume you can avoid the crash after migration with the following patch:

     0diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp
     1--- a/src/qt/walletcontroller.cpp	(revision 7f295e1d9b44c225c823242c1f04239f46fb27a6)
     2+++ b/src/qt/walletcontroller.cpp	(date 1766414694786)
     3@@ -461,7 +461,11 @@
     4             if (res->solvables_wallet_name) {
     5                 m_success_message += QChar(' ') + tr("Solvable but not watched scripts have been migrated to a new wallet named '%1'.").arg(GUIUtil::HtmlEscape(GUIUtil::WalletDisplayName(res->solvables_wallet_name.value())));
     6             }
     7-            m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(res->wallet));
     8+            if (!res->wallet) {
     9+                m_error_message = _("Null main wallet output from migration");
    10+            } else {
    11+                m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(res->wallet));
    12+            }
    13         } else {
    14             m_error_message = util::ErrorString(res);
    15         }
    

    Yet, this is not a solution. It would only tell us that migration returns an invalid main wallet, which shouldn’t happen. Still, it would give us more information to investigate. Please run it and let me know.

  19. furszy commented at 7:37 pm on December 22, 2025: member

    A part from what I wrote above, check the following branch and let me know how it goes: https://github.com/furszy/bitcoin-core/tree/2025_wallet_decouple_db_config

    These one should fix the initialization ordering issue (if that is the cause of the crash).

    Note: instead of copy pasting the diff as you did above, could fetch from my branch:

    0git remote add furszy https://github.com/furszy/bitcoin-core.git
    1git fetch furszy 2025_wallet_decouple_db_config 
    2git cherry-pick 0554fb96e5a25e36940f0fedcfbb0009c1808e84
    3git cherry-pick 1457479b43377713f9db9dc654f68b7efdacaf53
    

    (the first commit is the important one, the second one is just #918 (comment))

  20. rkrux commented at 10:31 am on December 23, 2025: contributor

    I tried this and got a fatal crash at the first launch of the GUI.

    Cherry-picked the commits as suggested above on latest master:

     0commit 23820b25bcff1701b309342ce0e154196e3b98d2 (HEAD -> master)
     1Author: furszy <matiasfurszyfer@protonmail.com>
     2Date:   Mon Dec 22 14:30:01 2025 -0500
     3
     4    SQUASH: GUI - not a fix. Just a check.
     5
     6commit 6dceb3cb98b222f67ad1dcb53f216e143a4cc8a0
     7Author: furszy <matiasfurszyfer@protonmail.com>
     8Date:   Mon Dec 22 14:27:27 2025 -0500
     9
    10    wallet: decouple DB engine conf
    11
    12commit d861c3820528fad2e17a45549bec70b6ba434dcc (origin/master, origin/HEAD)
    13Merge: 25636500c2 217dbbbb5e
    14Author: Ava Chow <github@achow101.com>
    15Date:   Mon Dec 22 17:14:35 2025 -0800
    16
    17    Merge bitcoin/bitcoin#33636: wallet: Expand MuSig test coverage and follow-ups
    

    UI

    Terminal State

    0➜  gui-node-1 $BITCOIN_BUILD_BIN_DIR/bitcoin-qt -datadir=/tmp/gui-node-1 -conf=/tmp/gui-node-1/bitcoin-reg.conf
    1
    2
    3************************
    4EXCEPTION: St13runtime_error
    5SQLiteDatabase: Failed to configure serialized threading mode: bad parameter or other API misuse
    6
    7bitcoin in Runaway exception
    
  21. furszy commented at 5:49 pm on December 23, 2025: member
    Ok, so it is not a db config ordering issue. Next check.. let’s see if your sqlite build was compiled without mutexing support (SQLITE_THREADSAFE=0). This would also make the serialized config fail. Please drop the previous changes and checkout to this branch (or just cherry-pick this https://github.com/furszy/bitcoin-core/commit/0f9091af31d7c9776f647fbb4590361e4b297520).
  22. rkrux commented at 10:21 am on December 24, 2025: contributor

    It didn’t abort, the error behaviour remained the same. I tested with testnet as well and the same error in this flow persists there too - so doesn’t seem regtest specific; I will update the issue title.

    Error:

    Cherry-picked commit on master

     0commit b684a62c2f47a96ee0498d53baa6481d3f1b457e (HEAD -> master)
     1Author: furszy <matiasfurszyfer@protonmail.com>
     2Date:   Tue Dec 23 12:37:43 2025 -0500
     3
     4    wallet: abort when sqlite was compiled with no mutex support
     5
     6commit d861c3820528fad2e17a45549bec70b6ba434dcc (origin/master, origin/HEAD)
     7Merge: 25636500c2 217dbbbb5e
     8Author: Ava Chow <github@achow101.com>
     9Date:   Mon Dec 22 17:14:35 2025 -0800
    10
    11    Merge bitcoin/bitcoin#33636: wallet: Expand MuSig test coverage and follow-ups
    
  23. rkrux renamed this:
    GUI crashes in regtest
    GUI crashes on startup after creating a wallet previously
    on Dec 24, 2025
  24. furszy commented at 6:56 pm on December 26, 2025: member

    @rkrux, the custom configuration path shouldn’t be relevant here (unless you have local permission issues). Also, whether the GUI is used or not should not make any difference (at most, it would only affect whether an uncaught error causes a crash, but nothing else beyond that).

    Please try running the release build. If it works as expected, that would point to an issue with your local SQLite setup. In that case, it would be helpful if you could provide more details about how SQLite was installed on your machine and try reinstalling/upgrading it.

  25. rkrux commented at 8:39 am on December 29, 2025: contributor

    @furszy Thanks for the suggestions!

    the custom configuration path shouldn’t be relevant here

    First, I tried with the following command, the same issue persisted:

    0$BITCOIN_BUILD_BIN_DIR/bitcoin-qt -regtest -datadir=/tmp/gui-node-1
    

    Then, I built v30.1 (https://github.com/bitcoin/bitcoin/tree/v30.1) in my system and ran the above command, the issue persisted.

    Please try running the release build.

    Then, I downloaded the binary from here: https://bitcoincore.org/bin/bitcoin-core-30.0/. This time I don’t face the issue and have created multiple wallets since!

    0./Downloads/bitcoin-30.0/bin/bitcoin-qt -regtest -datadir=/tmp/guireg2
    

    In that case, it would be helpful if you could provide more details about how SQLite was installed on your machine and try reinstalling/upgrading it.

    IIRC, I didn’t install SQLite separately. I am using the one that comes preinstalled in MacOS.

    0➜  guireg2 sqlite3 --version
    13.43.2 2023-10-10 13:08:14 1b37c146ee9ebb7acd0160c0ab1fd11017a419fa8a3187386ed8cb32b709aapl (64-bit)
    

    This experiment tells me that there is some issue when I build the binaries in my system but I never faced such an issue while running bitcoind only, which is surprising.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-01-08 18:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me