onionbalance master domain periodically offline - error 'Descriptor upload failed'

hi, i have an multiple hidden services with onionbalance on the same server and periodically one of master-domains is offline, but if i try restart service multiple times - domain is online.

here an logs from service with offline domain:

#-----------------------master------------------------

service1_master  | 2026-01-09 16:36:04,738 [INFO]: [*] fetch_instance_descriptors() called [*]

service1_master  | 2026-01-09 16:36:04,739 [INFO]: Initiating fetch of descriptors for all service instances.

service1_master  | 2026-01-09 16:36:10,246 [INFO]: Found instance sgdfoigjwohgd4fhgidgowisgoehirgoiehrogahefdogregsdfgwrad for this new descriptor!

service1_master  | 2026-01-09 16:36:10,249 [INFO]: We got a new descriptor for instance sgdfoigjwohgd4fhgidgowisgoehirgoiehrogahefdogregsdfgwrad but the intro set did not change.

service1_master  | 2026-01-09 16:36:10,504 [INFO]: Found instance fdgfeqgjwohgd4fhgidgoewfsdgwrhjoiehrogahefdogregsdfgwrid for this new descriptor!

service1_master  | 2026-01-09 16:36:10,507 [INFO]: We got a new descriptor for instance fdgfeqgjwohgd4fhgidgoewfsdgwrhjoiehrogahefdogregsdfgwrid but the intro set did not change.

service1_master  | 2026-01-09 16:36:10,834 [INFO]: Found instance fsdgahfgkjdfghehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid for this new descriptor!

service1_master  | 2026-01-09 16:36:10,837 [INFO]: We got a new descriptor for instance fsdgahfgkjdfghehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid but the intro set did not change.

service1_master  | 2026-01-09 16:36:11,995 [INFO]: Found instance htjefhrfgfuefhehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid for this new descriptor!

service1_master  | 2026-01-09 16:36:11,998 [INFO]: We got a new descriptor for instance htjefhrfgfuefhehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid but the intro set did not change.

service1_master  | 2026-01-09 16:36:51,887 [INFO]: [*] publish_all_descriptors() called [*]

service1_master  | 2026-01-09 16:36:51,888 [INFO]:   Intro set not modified

service1_master  | 2026-01-09 16:36:51,888 [INFO]:   Our first descriptor is still fresh (3599 seconds old).

service1_master  | 2026-01-09 16:36:51,897 [INFO]: Using srv dae5f6eb79c695789663c7d56c627dd38444875b0d64534b8661ab8dbee9e7f5 and TP#20461 (first descriptor)

service1_master  | 2026-01-09 16:36:51,994 [INFO]: Initialized hash ring of size 5774 (blinded key: b'DhGLJ6ztpkP8+NwVVCiNIsKk6lRCDcuj+N/Yvy9wl8o=')

service1_master  | 2026-01-09 16:36:51,994 [INFO]: Getting HS index with TP#20461 for first descriptor (1 replica)

service1_master  | 2026-01-09 16:36:51,994 [INFO]:   Tried with HS index 557e3f6b0c75b0240932a046987abec66bf616bc632291293bc65f33390a2ea5 got position 1930

service1_master  | 2026-01-09 16:36:51,994 [INFO]: Getting HS index with TP#20461 for first descriptor (2 replica)

service1_master  | 2026-01-09 16:36:51,994 [INFO]:   Tried with HS index 1607ebb098e886f10f9480982e3ea382663c4a2522598222593937f2223f6022 got position 480

service1_master  | 2026-01-09 16:36:51,994 [INFO]:   HSDir set remained the same

service1_master  | 2026-01-09 16:36:51,994 [INFO]: No reason to publish first descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion

service1_master  | 2026-01-09 16:36:51,994 [INFO]:   Intro set not modified

service1_master  | 2026-01-09 16:36:51,994 [INFO]:   Our second descriptor is still fresh (3599 seconds old).

service1_master  | 2026-01-09 16:36:51,999 [INFO]: Using srv 1bc8ad0ab9eb2f6b6b3d00bdc65bd5af5fc15595fbf6ca66019c91e2792fe722 and TP#20462 (second descriptor)

service1_master  | 2026-01-09 16:36:52,044 [INFO]: Initialized hash ring of size 5774 (blinded key: b'EDuPkqwQnV+uRWGqkBn5uKd19KVruNTjlf+tPwWgMaw=')

service1_master  | 2026-01-09 16:36:52,044 [INFO]: Getting HS index with TP#20462 for second descriptor (1 replica)

service1_master  | 2026-01-09 16:36:52,044 [INFO]:   Tried with HS index ebb7613a6c1ef26b738ec280e2f5d01235c0ef883ecf7f3c6ab24aecc0db71e7 got position 5304

service1_master  | 2026-01-09 16:36:52,044 [INFO]: Getting HS index with TP#20462 for second descriptor (2 replica)

service1_master  | 2026-01-09 16:36:52,044 [INFO]:   Tried with HS index e769916436ddb214539256569900a3dd2b468223a1192e5107a2fc9a6f0c6887 got position 5210

service1_master  | 2026-01-09 16:36:52,044 [INFO]:   HSDir set remained the same

service1_master  | 2026-01-09 16:36:52,044 [INFO]: No reason to publish second descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion

service1_master  | 2026-01-09 16:41:51,086 [INFO]: [*] publish_all_descriptors() called [*]

service1_master  | 2026-01-09 16:41:51,086 [INFO]:   Intro set not modified

service1_master  | 2026-01-09 16:41:51,086 [INFO]:   Our first descriptor has expired (3898 seconds old). Uploading new one.

service1_master  | 2026-01-09 16:41:51,096 [INFO]: Using srv dae5f6eb79c695789663c7d56c627dd38444875b0d64534b8661ab8dbee9e7f5 and TP#20461 (first descriptor)

service1_master  | 2026-01-09 16:41:51,189 [INFO]: Initialized hash ring of size 5774 (blinded key: b'DhGLJ6ztpkP8+NwVVCiNIsKk6lRCDcuj+N/Yvy9wl8o=')

service1_master  | 2026-01-09 16:41:51,189 [INFO]: Getting HS index with TP#20461 for first descriptor (1 replica)

service1_master  | 2026-01-09 16:41:51,189 [INFO]:   Tried with HS index 557e3f6b0c75b0240932a046987abec66bf616bc632291293bc65f33390a2ea5 got position 1930

service1_master  | 2026-01-09 16:41:51,189 [INFO]: Getting HS index with TP#20461 for first descriptor (2 replica)

service1_master  | 2026-01-09 16:41:51,190 [INFO]:   Tried with HS index 1607ebb098e886f10f9480982e3ea382663c4a2522598222593937f2223f6022 got position 480

service1_master  | 2026-01-09 16:41:51,190 [INFO]:   HSDir set remained the same

service1_master  | 2026-01-09 16:41:51,190 [INFO]: We got 12 intros from 4 instances. We want 8 intros ourselves (got: 8)

service1_master  | 2026-01-09 16:41:51,584 [INFO]: Service hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion created first descriptor (8 intro points) (blinding param: 2bd2db38a1bad942a0fffc20b6fc5d2c6933ef8182d400f051fd4047fcfa7d79) (size: 26419 bytes). About to publish:

service1_master  | 2026-01-09 16:41:51,584 [INFO]: Using srv dae5f6eb79c695789663c7d56c627dd38444875b0d64534b8661ab8dbee9e7f5 and TP#20461 (first descriptor)

service1_master  | 2026-01-09 16:41:51,620 [INFO]: Initialized hash ring of size 5774 (blinded key: b'DhGLJ6ztpkP8+NwVVCiNIsKk6lRCDcuj+N/Yvy9wl8o=')

service1_master  | 2026-01-09 16:41:51,620 [INFO]: Getting HS index with TP#20461 for first descriptor (1 replica)

service1_master  | 2026-01-09 16:41:51,620 [INFO]:   Tried with HS index 557e3f6b0c75b0240932a046987abec66bf616bc632291293bc65f33390a2ea5 got position 1930

service1_master  | 2026-01-09 16:41:51,620 [INFO]: Getting HS index with TP#20461 for first descriptor (2 replica)

service1_master  | 2026-01-09 16:41:51,620 [INFO]:   Tried with HS index 1607ebb098e886f10f9480982e3ea382663c4a2522598222593937f2223f6022 got position 480

service1_master  | 2026-01-09 16:41:51,620 [INFO]: Uploading first descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion to ['5A1688FA7441B69920F8DC2A71265C57393CADE7', '32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F', '876BA5C41AB7F4A8A99AACAB980C081DBA61711B', '6A562C3B1403AE530FD93CD7B84EA1DDBC1BB306', '0CAFFFE470E88AF156D6750B616995B3790F24EF', 'D281CCB4BEF52391DCD7E90E73B32E324043A944', '1AD5D1AB1932F683B6CE40D85021FB4CA830E7F2', '54D3DD124E52B1A474838A60005D10AA4CBF167A']

service1_master  | 2026-01-09 16:41:51,700 [INFO]:   Intro set not modified

service1_master  | 2026-01-09 16:41:51,701 [INFO]:   Our second descriptor has expired (3899 seconds old). Uploading new one.

service1_master  | 2026-01-09 16:41:51,704 [INFO]: Using srv 1bc8ad0ab9eb2f6b6b3d00bdc65bd5af5fc15595fbf6ca66019c91e2792fe722 and TP#20462 (second descriptor)

service1_master  | 2026-01-09 16:41:51,738 [INFO]: Initialized hash ring of size 5774 (blinded key: b'EDuPkqwQnV+uRWGqkBn5uKd19KVruNTjlf+tPwWgMaw=')

service1_master  | 2026-01-09 16:41:51,738 [INFO]: Getting HS index with TP#20462 for second descriptor (1 replica)

service1_master  | 2026-01-09 16:41:51,738 [INFO]:   Tried with HS index ebb7613a6c1ef26b738ec280e2f5d01235c0ef883ecf7f3c6ab24aecc0db71e7 got position 5304

service1_master  | 2026-01-09 16:41:51,738 [INFO]: Getting HS index with TP#20462 for second descriptor (2 replica)

service1_master  | 2026-01-09 16:41:51,738 [INFO]:   Tried with HS index e769916436ddb214539256569900a3dd2b468223a1192e5107a2fc9a6f0c6887 got position 5210

service1_master  | 2026-01-09 16:41:51,738 [INFO]:   HSDir set remained the same

service1_master  | 2026-01-09 16:41:51,738 [INFO]: We got 12 intros from 4 instances. We want 8 intros ourselves (got: 8)

service1_master  | 2026-01-09 16:41:51,909 [INFO]: Service hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion created second descriptor (8 intro points) (blinding param: 7af21d1b57034c3efddb679f8ee1454fea40ab62fe1ad3bb8bd19030719cf40e) (size: 26322 bytes). About to publish:

service1_master  | 2026-01-09 16:41:51,909 [INFO]: Using srv 1bc8ad0ab9eb2f6b6b3d00bdc65bd5af5fc15595fbf6ca66019c91e2792fe722 and TP#20462 (second descriptor)

service1_master  | 2026-01-09 16:41:51,941 [INFO]: Initialized hash ring of size 5774 (blinded key: b'EDuPkqwQnV+uRWGqkBn5uKd19KVruNTjlf+tPwWgMaw=')

service1_master  | 2026-01-09 16:41:51,941 [INFO]: Getting HS index with TP#20462 for second descriptor (1 replica)

service1_master  | 2026-01-09 16:41:51,941 [INFO]:   Tried with HS index ebb7613a6c1ef26b738ec280e2f5d01235c0ef883ecf7f3c6ab24aecc0db71e7 got position 5304

service1_master  | 2026-01-09 16:41:51,941 [INFO]: Getting HS index with TP#20462 for second descriptor (2 replica)

service1_master  | 2026-01-09 16:41:51,941 [INFO]:   Tried with HS index e769916436ddb214539256569900a3dd2b468223a1192e5107a2fc9a6f0c6887 got position 5210

service1_master  | 2026-01-09 16:41:51,942 [INFO]: Uploading second descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion to ['A5E662AB4A4644E55D6C37D56468B57ADA8D0F6B', '868D28B145A379BE094390A52E61C063A891A1EB', 'AA876FF84E0F035F1D20BDF0150C045156168619', 'EBC856A495B361C4207229CB03EFE64637A5CE4F', '4916C94702DB9FE5A94B69657880FCF6D1B2A21B', '3D01CE600B2DC5C719684800E8C6990FE4CB8F9A', '071C2330B45FCFE8228161CAEED4E6AADE60841B', '81F4867EC51E06053346C0226FB82AC8D14BE4D2']

service1_master  | 2026-01-09 16:41:52,433 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F~ndnr1 (UPLOAD_REJECTED)

service1_master  | 2026-01-09 16:41:52,557 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $5A1688FA7441B69920F8DC2A71265C57393CADE7~AnonRelay13 (UPLOAD_REJECTED)

service1_master  | 2026-01-09 16:41:52,594 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $6A562C3B1403AE530FD93CD7B84EA1DDBC1BB306~privatus (UPLOAD_REJECTED)

service1_master  | 2026-01-09 16:41:52,824 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $0CAFFFE470E88AF156D6750B616995B3790F24EF~mgvx (UPLOAD_REJECTED)

service1_master  | 2026-01-09 16:41:52,825 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $876BA5C41AB7F4A8A99AACAB980C081DBA61711B~TORKeFFORG13 (UPLOAD_REJECTED)

#-----------------------node1------------------------

service1_node_1  | Jan 08 18:50:32.828 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.

service1_node_1  | Jan 08 18:50:32.828 [notice] Tor can't help you if you use it wrong! Learn how to be safe at 


service1_node_1  | Jan 08 18:50:32.828 [notice] Read configuration file "/etc/tor/torrc".

service1_node_1  | Jan 08 18:50:32.830 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered

service1_node_1  | Jan 08 18:50:32.831 [notice] Opening Socks listener on 127.0.0.1:9050

service1_node_1  | Jan 08 18:50:32.831 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050

#-----------------------node2------------------------

service1_node_2  | Jan 08 18:50:32.770 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.

service1_node_2  | Jan 08 18:50:32.770 [notice] Tor can't help you if you use it wrong! Learn how to be safe at 


service1_node_2  | Jan 08 18:50:32.770 [notice] Read configuration file "/etc/tor/torrc".

service1_node_2  | Jan 08 18:50:32.772 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered

service1_node_2  | Jan 08 18:50:32.773 [notice] Opening Socks listener on 127.0.0.1:9050

service1_node_2  | Jan 08 18:50:32.773 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050

#-----------------------node3------------------------

service1_node_3  | Jan 08 18:50:32.718 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.

service1_node_3  | Jan 08 18:50:32.718 [notice] Tor can't help you if you use it wrong! Learn how to be safe at 


service1_node_3  | Jan 08 18:50:32.718 [notice] Read configuration file "/etc/tor/torrc".

service1_node_3  | Jan 08 18:50:32.720 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered

service1_node_3  | Jan 08 18:50:32.721 [notice] Opening Socks listener on 127.0.0.1:9050

service1_node_3  | Jan 08 18:50:32.721 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050

#-----------------------node4------------------------

service1_node_4  | Jan 08 18:50:32.994 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.

service1_node_4  | Jan 08 18:50:32.994 [notice] Tor can't help you if you use it wrong! Learn how to be safe at 


service1_node_4  | Jan 08 18:50:32.994 [notice] Read configuration file "/etc/tor/torrc".

service1_node_4  | Jan 08 18:50:32.996 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered

service1_node_4  | Jan 08 18:50:32.997 [notice] Opening Socks listener on 127.0.0.1:9050

service1_node_4  | Jan 08 18:50:32.997 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050

here an torrc of master:

HiddenServiceDir /var/lib/tor/hidden_service/

HiddenServicePort 80 127.0.0.1:6666

ControlPort 9051

CookieAuthentication 1

Log notice file /var/log/tor/notices.log

here an torrc of onionbalance nodes:

HiddenServiceDir /var/lib/tor/hidden_service/

HiddenServicePort 80 service1:8080

HiddenServiceVersion 3

HiddenServiceOnionbalanceInstance 1

NumEntryGuards 8

CircuitBuildTimeout 30

Log notice file /var/log/tor/notices.log

here is my services setup. i build docker images with tor and onionbalance:

FROM alpine:3.20 AS tor

RUN apk add --no-cache tor

CMD ["tor", "-f", "/etc/tor/torrc"]



FROM alpine:3.20 AS onionbalance

RUN apk add --no-cache tor git py3-cryptography py3-pip py3-pycryptodomex py3-setproctitle py3-wheel

RUN pip install onionbalance --break-system-packages

CMD ["sh", "-c", "tor -f /etc/tor/torrc & sleep 5 && exec onionbalance -c /etc/onionbalance/config.yaml"]

here is my docker-compose.yml:

services:

service1:

image: service1:latest

container_name: service1

expose:

      - "8080"

restart: unless-stopped

networks:

      - tor_service1



service1_node_1:

image: tor:latest

container_name: service1_node_1

volumes:

      - ./data/service1/node1/torrc:/etc/tor/torrc

      - ./data/service1/node1/data:/var/lib/tor

depends_on:

      - service1

restart: unless-stopped

networks:

      - tor_service1



service1_node_2:

image: tor:latest

container_name: service1_node_2

volumes:

      - ./data/service1/node2/torrc:/etc/tor/torrc

      - ./data/service1/node2/data:/var/lib/tor

depends_on:

      - service1

restart: unless-stopped

networks:

      - tor_service1



service1_node_3:

image: tor:latest

container_name: service1_node_3

volumes:

      - ./data/service1/node3/torrc:/etc/tor/torrc

      - ./data/service1/node3/data:/var/lib/tor

depends_on:

      - service1

restart: unless-stopped

networks:

      - tor_service1



service1_master:

image: onionbalance:latest

container_name: service1_master

volumes:

      - ./data/service1/onionbalance:/etc/onionbalance

      - ./data/service1/master/torrc:/etc/tor/torrc

      - ./data/service1/master/data:/var/lib/tor

depends_on:

      - service1_node_1

      - service1_node_2

      - service1_node_3

restart: unless-stopped

networks:

      - tor_service1



# similar for service2, service3, service4

networks:

tor_service1:

similar issues still without solution: