In v22, using the options: -onlynet=onion -onlynet=ipv4 -onlynet=ipv6, combined with the options -torcontrol= (etc) functioned and bitcoind correctly pulled the onion socks address via a probe to tor. In v23, that combination of options no longer functions and -onion= is required.

** expected **

Using -onlynet=onion (and ipv4 and ipv6) if -torcontrol= is specified should still work.

**Actual behavior**

bitcoind refuses to start up due to commitid e53a8505db preventing it from doing so in init.cpp.

**To reproduce**

Run as per above.

**System information**

Sources built from fcf6c8f4eb217763545ede1766831a6b93f583bd (tag v23.0 as of this writing I .. think?)

Error message in debug.log is:

Error: Outbound connections restricted to Tor (-onlynet=onion) but the proxy for reaching the Tor network is not provided
(no -proxy= and no -onion= given) or it is explicitly forbidden (-onion=0)
Shutdown: In progress...
scheduler thread exit
Shutdown: done

}
    }
     ********************************************************* Step 9: load wallet
    for (const auto& client : node.chain_clients) {
        if (!client->load()) {
            return false;
        }
    }
     ***
     if pruning, perform the initial blockstore prune
     after any wallet rescanning has taken place.
    if (fPruneMode) {
        if (!fReindex) {
            LOCK(cs_main);
            for (CChainState* chainstate : chainman.GetAll()) {
                uiInterface.InitMessage(_("Pruning blockstore…").translated);
                chainstate->PruneAndFlush();
            }
        }
    } else {
        LogPrintf("Setting NODE_NETWORK on non-prune mode\n");
        nLocalServices = ServiceFlags(nLocalServices | NODE_NETWORK);
    }
     ********************************************************* Step 11: import blocks
    if (!CheckDiskSpace(gArgs.GetDataDirNet())) {
        InitError(strprintf(_("Error: Disk space is low for %s"), fs::quoted(fs::PathToString(gArgs.GetDataDirNet()))));
        return false;
    }
    if (!CheckDiskSpace(gArgs.GetBlocksDirPath())) {
        InitError(strprintf(_("Error: Disk space is low for %s"), fs::quoted(fs::PathToString(gArgs.GetBlocksDirPath()))));