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

for (const auto& arg : args.GetUnsuitableSectionOnlyArgs()) {
        errors += strprintf(_("Config setting for %s only applied on %s network when in [%s] section.") + Untranslated("\n"), arg, network, network);
    }
    if (!errors.empty()) {
        return InitError(errors);
    }
    
    bilingual_str warnings;
    for (const auto& section : args.GetUnrecognizedSections()) {
        warnings += strprintf(Untranslated("%s:%i ") + _("Section [%s] is not recognized.") + Untranslated("\n"), section.m_file, section.m_line, section.m_name);
    }
    if (!warnings.empty()) {
        InitWarning(warnings);
    }
    if (!fs::is_directory(gArgs.GetBlocksDirPath())) {
        return InitError(strprintf(_("Specified blocks directory \"%s\" does not exist."), args.GetArg("-blocksdir", "")));
    }
    
    std::string blockfilterindex_value = args.GetArg("-blockfilterindex", DEFAULT_BLOCKFILTERINDEX);
    if (blockfilterindex_value == "" || blockfilterindex_value == "1") {
        g_enabled_filter_types = AllBlockFilterTypes();
    } else if (blockfilterindex_value != "0") {
        const std::vector<std::string> names = args.GetArgs("-blockfilterindex");
        for (const auto& name : names) {
            BlockFilterType filter_type;
            if (!BlockFilterTypeByName(name, filter_type)) {
                return InitError(strprintf(_("Unknown -blockfilterindex value %s."), name));
            }
            g_enabled_filter_types.insert(filter_type);
        }