This page lists everything in Hydranos 4.4 that is stubbed, ignored, broken or missing. It is for anyone who wants to know, before relying on a control or a setting, whether it really does something.
Each row is one line. The full explanation, with what really happens and the workaround, is on the linked page. What 4.4.1 fixed from the 4.4.0 list is summed up at the end, in Fixed in 4.4.1, and what 4.4 fixed from the 4.3 list in Fixed in 4.4.
How to read the status column
Status
Meaning
Not implemented
The control, route or setting exists, but does nothing (or returns constants), or the feature stops short of what its name suggests.
Accepted but ignored
A key or field is accepted and stored, but nothing acts on it. Since 4.4 most such keys are named in a startup warning.
Known bug
The feature exists and works, but behaves wrongly in the case described.
Absent
There is no such feature in 4.4, and nothing in the UI suggests otherwise.
Default trap
It works, but the default value is not what you would expect.
Doc bug
The product works; a file shipped with it describes it wrongly.
The first three match the callouts used on every page (Not implemented in 4.4, Accepted but ignored in 4.4, Known bug in 4.4).
In the web UI
Item
Status
What to do instead
Page
Whether peers can reach an engine is shown nowhere: the header network panel's colour is the outbound exit probe only, and its tooltip refers to a health dot the page does not draw
Known bug
GET /api/port-forward (engines[].reachable, inbound_peers)
Advanced settings lists [daemon] kill_switch, egress and the [proxy] keys, meant to be left to the Network tab: the editor hides the Network-tab keys under [race]/[hoard] only
Known bug
Change them on the Network tab, which writes them as a set
Add tab help texts: Put the payload in its own subfolder says "on the hoard agent" (it applies to any engine); Skip the hash check… says a missing or wrong-size file is refused (nothing is checked)
The subfolder option (create_subfolder, [daemon] create_torrent_folder) on a magnet added through POST /api/torrents or the Add tab, and on watched folders, MCP adds, RSS magnets, node fetches and the import wizard
Accepted but ignored
Upload the .torrent, or add the magnet through the shim with contentLayout=Subfolder
Download order (sequential, first/last piece) at add time: only the shim reads it, not the Add tab, POST /api/torrents, the upload route, MCP or a watched folder
Not implemented
Set it right after the add (context menu or download-order), or add through the shim
app/setPreferences keys other than share limits, speed caps, dht/pex/lsd, active counts, the slow-torrent rule and save_path answer 200 and do nothing (logged)
app/buildInfo and app/version are constants; torrents/propertiesseeds and total_wasted are 0; no real availability; no per-tracker status or peer counts in torrents/trackers
max_connections missing means no cap on peer connections, and hoard's active_downloads missing means no download ceiling (template: 4000 / 12000, and 10)
Share limits (ratio, seeding time, inactivity) never act on a torrent whose first live tracker has no Minimum seed declared: the seed is held, logged once
Default trap
Declare each tracker's Minimum seed on the Trackers tab (0 for none)
Advanced settings lists active_downloads, max_uploads_per_torrent and peer_timeout only when the file has them, although saving would create them (race's template has no active_downloads)
Check what actually happens cannot conclude a leak while the kill switch is armed (every mode but Direct by default): the default route is not measured, pinned or proxied rows show warn
Calls to other nodes, the gluetun control server, a qBittorrent being imported and NAT-PMP/UPnP for an unpinned engine stay local; an engine pinned to an interface Hydranos did not create resolves tracker names with the host's resolver
Not implemented
Managed WireGuard (its file's DNS), or the whole process in the VPN
bind_interface and managed WireGuard are Linux-only: refused by the API and the Network tab elsewhere; an engine whose file still sets bind_interface stays off the network
[daemon] bind_interface on Windows is accepted by the Network tab and POST /api/network/egress, then every daemon request (lists, update check, webhooks, .torrent URLs) that does not borrow an engine's route is refused, [proxy] included
GET /api/settings returns an announce_proxy URL in clear, user:pass included, to anyone holding the API key (the SOCKS5 passwords and the gluetun API key are masked)
The SOCKS5 proxy card says "Nobody can connect to you from outside" and that the DHT still shows your address: incoming peers still reach the host's listen port, and the DHT is off behind the proxy
Managed WireGuard: taking a tunnel down removes its oif rules and its device, not its from rule (preference 6100 plus slot), which stays until a tunnel comes up again at that slot
Known bug
Harmless while that table stays empty; ip rule del pref <6100+slot> by hand
Rows from another node: Edit tags ›, Force download and Share limits… are skipped; Edit trackers in the detail panel edits this instance's copy of the same hash
A bulk Reannounce names no engine: for a hash held by two engines it announces the first copy found, which may be the other one (found by reading the code)
Workflow condition progress reads 0 for a stopped torrent with no piece map (seed-mode add or cross-seed added stopped, complete torrent reloaded stopped after a restart)
Nothing about the network exit in /metrics (tunnel state, forwarded port, kill switch verdicts, exit IP, DNS leak), and an engine whose announces wait for a forwarded port shows in no metric and not in /health
Not implemented
Poll the JSON routes with the API key; alert on announces that stop growing
Whole-list routes (GET /api/engines/:id/torrents, /api/hoard/torrents, /api/race/torrents): a filter plus an offset (limit absent or 5000 and up) loops forever once 5000 rows match from that offset
Windows: the tray icon disappears before the resume save ends; closing the console, a shutdown or a sign-out start the same save, but Windows may end the process before it finishes (not tested by the maintainer)
Known bug
Quit from the tray and wait for hydranos.exe to leave Task Manager
Windows: an update started while Hydranos is still on its startup screen cannot stop it (no stop event yet, taskkill ignored): it ends with still running after 60s, nothing replaced (found by reading the code)
Keys named in a startup warning with their replacement (agent_token, listen_interfaces, file_pool_size, [race.custom_choking], [hoard.disk_slots], [bench], [metrics], [peer_intel], [arr_cleanup], [notify], min_age_minutes, 3.x agent blocks and category fields), hidden from Advanced settings; plus inactivity_timeout and announce_rate_limit, which are not warned: full table
For readers upgrading from 4.4.0. The full list is in the changelog.
Moves:Set location…, a same-mode category move and the workflow action move files to a folder carry the torrent's own state (pieces, tracker edits, counters, caps, stopped state) instead of re-adding it in seed mode; Duplicate to engine › refuses (409) a source that is incomplete or being checked; a graduation, from the drain or by hand, leaves a torrent in place when a file of the same name sits at the destination; the first announce after a graduation or Move to engine › no longer reports lifetime bytes.
Adding and categories:Start goes through the same path guard as a recheck; POST /api/torrents answers 400 or 409 for a refusal and 500 only for a store failure; a torrent added during the store reconcile keeps its row (no more no piece hashes ghosts), and DELETE /api/torrents/:hash removes a torrent an engine runs with no store row; a category PUT without mode keeps the mode; a category rename follows it everywhere it is named.
Queue and shim:Force download and setForceStart run a torrent past the download queue (no more 409).
Security: SOCKS5 passwords and the gluetun API key are masked in GET /api/network/mode, /api/network/egress and /api/settings.
Watched folders and web UI: each folder scans on its own (a stuck network share no longer stalls the others), the status shows seen N and not scanned yet; UNC paths and C:/… accepted on Windows; a folder's forced engine kept on save; a reload of the Config tab no longer shows an empty list; filter chips keep their width.
Fixed in 4.4
For readers upgrading from 4.3.0 (4.4 includes 4.3.1 and 4.3.2). What to check after the upgrade is in Upgrading from 3.x.
Security and access:Change password stores the new password; Sign out button; hydranos reset-password / hash-password; the first-run setup judges the socket peer, not only X-Forwarded-For; rescue mode listens on api_host/api_port.
Stopping and restarting: UI/API restarts save resume data and exit with code 75; an open UI tab no longer blocks the clean stop; HYDRANOS_STOP_TIMEOUT is applied; Windows console close, shutdown, sign-out and Ctrl+Break start a clean stop; stopped is sent on remove and at shutdown.
Moves and removals: local Move to engine › adds to the target before removing the source; a graduation releases the source (data kept), moves the files, then adds to the target, and rolls everything back on failure or cancel; both carry the torrent's state; POST …/graduate runs the same checks; race purge and the post-restore reconcile delete only the engine's own copy.
Web UI:Node group shown with two local engines; Race tab lists every race-role engine; bulk actions on extra-engine rows act on that engine; Advanced settings saves the tracker tables; the network panel names engines; dead cards, dialogs and badges removed; update badge and Report issue use the right repository.
Adding and categories: Add tab Mode, subfolder (not for a magnet), skip hash check and Add without starting are applied; torrent_url on the native route; seed mode for magnets; clearer status codes; category rename, delete (labels cleared), orphan Adopt, case-insensitive mode, No category; import provenance recorded.
qBittorrent shim: real uploaded/ratio, tracker, hashes=all, createCategory 409, deleteTags, addTrackers announces, extra engines listed once; setLocation, setShareLimits, setForceStart, filePrio, sequential, sync/maindata, speed limits and many setPreferences keys added.
New features: RSS, file priorities and sequential download, download queue, share limits, speed limits, choker, LSD, scrape for torrents not announced yet, managed WireGuard, Gluetun, SOCKS5 and PROXY-v2 modes, kill switch and daemon egress.
Engines and trackers:start_paused holds; race announces follow the tracker's interval instead of 30 minutes; DHT, PEX and webseeds on and real listen ports when keys are missing; tracker edits saved at once; tracker form hint fixed; + Manual host leaves Minimum seed blank.
Network: live port changes persisted and rebound (TCP, uTP, announces, forwarding); out-of-range ports refused; real /api/port-forward; UDP forwarded; enable_ipv6 = false forces v4 announces; each engine dials with its own binding and identity; uTP refused rather than unpinned; announce_proxy / announce_ip read; HYDRANOS_CAP_NET_ADMIN used.
Nodes: remote-row actions sent to the node; hyphenated node names; enrolment script fixes (archive name, no foreign docker rm, pinned version, token kept on 409); persistent handoff job; moves to a node's extra engine confirmed; node edit, rename and key rotation.
Workflows and jobs:Save keeps Enabled; NOT groups kept; data_missing fixed and progress fixed for running torrents (stopped ones: see above); Every column; Windows paths; allow_breaking_hardlinks control; field hints; Jobs Cancel; Active only shows queued jobs; bulk Recheck reaches race copies.
Monitoring: Logs filters and Live; log rotation (128 MiB, 4 old files); real /health and /api/startup; full /metrics; real anomaly counters; line test, A / B comparison and race snapshots recorded; extra engines in Overview, Benchmark, Records and tracker health; list routes honour filters; stub routes removed.
Packaging and 3.x leftovers:packaging/install.sh installs the updater and no longer overwrites an existing unit (the shipped one goes to hydranos.service.new); docker-compose.yml comments fixed; /api/agents* and jobs/move-remote answer 410 with the replacement; HYDRANOS_ENGINE_ID / HYDRANOS_ENGINES refused with a message; dead keys named at startup.