Repository navigation
HF Hub Offline #526
Description
Hello, I get an error when selecting the custom voice "qwen".
2026-04-21 10:14:45,296 - backend.backends.qwen_custom_voice_backend - INFO - Loading Qwen CustomVoice 1.7B on cuda... 2026-04-21 10:14:45,297 - backend.utils.hf_offline_patch - INFO - [offline-guard] qwen-custom-voice-1.7B is cached � forcing offline modetorch_dtypeis deprecated! Usedtypeinstead! 2026-04-21 10:14:45,297 - qwen_tts.core.models.configuration_qwen3_tts - INFO - speaker_encoder_config is None. Initializing talker model with default values 2026-04-21 10:14:45,298 - qwen_tts.core.models.configuration_qwen3_tts - INFO - talker_config is None. Initializing talker model with default values 2026-04-21 10:14:45,298 - qwen_tts.core.models.configuration_qwen3_tts - INFO - speaker_encoder_config is None. Initializing talker model with default values 2026-04-21 10:14:45,299 - qwen_tts.core.models.configuration_qwen3_tts - INFO - code_predictor_config is None. Initializing code_predictor model with default values 2026-04-21 10:14:45,299 - qwen_tts.core.models.configuration_qwen3_tts - INFO - code_predictor_config is None. Initializing code_predictor model with default values 2026-04-21 10:14:46,863 - qwen_tts.core.tokenizer_12hz.configuration_qwen3_tts_tokenizer_v2 - INFO - encoder_config is None. Initializing encoder with default values 2026-04-21 10:14:46,863 - qwen_tts.core.tokenizer_12hz.configuration_qwen3_tts_tokenizer_v2 - INFO - decoder_config is None. Initializing decoder with default values 2026-04-21 10:14:47,386 - backend.utils.progress - ERROR - Marked qwen-custom-voice-1.7B as error: Cannot reach https://huggingface.co/api/models/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice: offline mode is enabled. To disable it, please unset theHF_HUB_OFFLINEenvironment variable. Traceback (most recent call last): File "backend\services\generation.py", line 64, in run_generation File "backend\backends\__init__.py", line 400, in load_engine_model File "backend\backends\qwen_custom_voice_backend.py", line 93, in load_model_async File "asyncio\threads.py", line 25, in to_thread File "concurrent\futures\thread.py", line 59, in run File "backend\backends\qwen_custom_voice_backend.py", line 116, in _load_model_sync File "qwen_tts\inference\qwen3_tts_model.py", line 118, in from_pretrained processor = AutoProcessor.from_pretrained(pretrained_model_name_or_path, fix_mistral_regex=True,) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\models\auto\processing_auto.py", line 396, in from_pretrained return processor_class.from_pretrained( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\processing_utils.py", line 1394, in from_pretrained args = cls._get_arguments_from_pretrained(pretrained_model_name_or_path, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\processing_utils.py", line 1453, in _get_arguments_from_pretrained args.append(attribute_class.from_pretrained(pretrained_model_name_or_path, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2113, in from_pretrained return cls._from_pretrained( ^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2395, in _from_pretrained tokenizer = cls._patch_mistral_regex( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2438, in _patch_mistral_regex if _is_local or is_base_mistral(pretrained_model_name_or_path): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2432, in is_base_mistral model = model_info(model_id) ^^^^^^^^^^^^^^^^^^^^ File "huggingface_hub\utils\_validators.py", line 114, in _inner_fn File "huggingface_hub\hf_api.py", line 2660, in model_info File "requests\sessions.py", line 605, in get File "requests\sessions.py", line 592, in request File "requests\sessions.py", line 706, in send File "huggingface_hub\utils\_http.py", line 107, in send huggingface_hub.errors.OfflineModeIsEnabled: Cannot reach https://huggingface.co/api/models/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice: offline mode is enabled. To disable it, please unset theHF_HUB_OFFLINE environment variable.

Activity
gaalos commentedon Apr 21, 2026
Same on v 0.4.4
zicaMKD commentedon Apr 21, 2026
i still get the error with "Allow network access" enabled, when its disabled everything is fine.
qwen TTS 1.7B and tada 3B throw the "connot reach" error, chatterbox Turbo does not.
skyooo commentedon Apr 21, 2026
arked qwen-custom-voice-1.7B as error: Cannot reach https://hf-mirror.com/api/models/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice: offline mode is enabled. To disable it, please unset the
HF_HUB_OFFLINEenvironment variable.Traceback (most recent call last):
File "backend\services\generation.py", line 64, in run_generation
File "backend\backends_init_.py", line 400, in load_engine_model
File "backend\backends\qwen_custom_voice_backend.py", line 93, in load_model_async
File "asyncio\threads.py", line 25, in to_thread
File "concurrent\futures\thread.py", line 59, in run
File "backend\backends\qwen_custom_voice_backend.py", line 110, in _load_model_sync
diflartle commentedon Apr 21, 2026
Same error here, updated 0.3 -> 4.4.4 and it stopped working. Humorously, i saw the patch notes with the update saying it specifically fixed this issue.
homelabguy5539 commentedon Apr 21, 2026
Same Here, on version 0.4.4
2026-04-21 19:28:09,711 - __main__ - INFO - ============================================================ 2026-04-21 19:28:09,711 - __main__ - INFO - voicebox-server starting up... 2026-04-21 19:28:09,711 - __main__ - INFO - Python version: 3.12.10 (tags/v3.12.10:0cc8128, Apr 8 2025, 12:21:36) [MSC v.1943 64 bit (AMD64)] 2026-04-21 19:28:09,711 - __main__ - INFO - Executable: C:\Users\homel\AppData\Roaming\sh.voicebox.app\backends\cuda\voicebox-server-cuda.exe 2026-04-21 19:28:09,711 - __main__ - INFO - Arguments: ['C:\\Users\\homel\\AppData\\Roaming\\sh.voicebox.app\\backends\\cuda\\voicebox-server-cuda.exe', '--data-dir', 'C:\\Users\\homel\\AppData\\Roaming\\sh.voicebox.app', '--port', '17493', '--parent-pid', '9132', '--host', '0.0.0.0'] 2026-04-21 19:28:09,711 - __main__ - INFO - ============================================================ 2026-04-21 19:28:09,711 - __main__ - INFO - Importing argparse... 2026-04-21 19:28:09,712 - __main__ - INFO - Importing uvicorn... 2026-04-21 19:28:09,833 - __main__ - INFO - Standard library imports successful 2026-04-21 19:28:09,833 - __main__ - INFO - Importing backend.config... 2026-04-21 19:28:09,835 - __main__ - INFO - Importing backend.database... 2026-04-21 19:28:10,092 - __main__ - INFO - Importing backend.main (this may take a while due to torch/transformers)... 2026-04-21 19:28:15,080 - __main__ - INFO - Backend imports successful 2026-04-21 19:28:15,080 - __main__ - INFO - Backend variant: CUDA server.py:278: DeprecationWarning: on_event is deprecated, use lifespan event handlers instead. Read more about it in the [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). 2026-04-21 19:28:15,081 - __main__ - INFO - Parsed arguments: host=0.0.0.0, port=17493, data_dir=C:\Users\homel\AppData\Roaming\sh.voicebox.app 2026-04-21 19:28:15,081 - __main__ - INFO - Setting data directory to: C:\Users\homel\AppData\Roaming\sh.voicebox.app 2026-04-21 19:28:15,081 - backend.config - INFO - Data directory set to: C:\Users\homel\AppData\Roaming\sh.voicebox.app 2026-04-21 19:28:15,082 - __main__ - INFO - Initializing database... 2026-04-21 19:28:15,279 - __main__ - INFO - Database initialized successfully 2026-04-21 19:28:15,279 - __main__ - INFO - Starting uvicorn server on 0.0.0.0:17493... INFO: Started server process [16260] INFO: Waiting for application startup. 2026-04-21 19:28:15,337 - backend.app - INFO - Voicebox v0.4.4 starting up 2026-04-21 19:28:15,337 - backend.app - INFO - Python 3.12.10 on Windows 11 (AMD64) 2026-04-21 19:28:15,348 - backend.app - INFO - Database: C:\Users\homel\AppData\Roaming\sh.voicebox.app\voicebox.db 2026-04-21 19:28:15,349 - backend.app - INFO - Data directory: C:\Users\homel\AppData\Roaming\sh.voicebox.app 2026-04-21 19:28:15,352 - backend.app - INFO - Profiles: 2, Generations: 10 2026-04-21 19:28:15,353 - backend.app - INFO - Backend: PYTORCH 2026-04-21 19:28:15,375 - backend.app - INFO - GPU: CUDA (NVIDIA GeForce RTX 5060) 2026-04-21 19:28:15,378 - backend.app - INFO - Model cache: C:\Users\homel\.cache\huggingface\hub 2026-04-21 19:28:15,378 - backend.app - INFO - Ready 2026-04-21 19:28:15,378 - watchdog - INFO - Parent watchdog started, monitoring PID 9132, server PID 16260 2026-04-21 19:28:15,379 - watchdog - INFO - Parent PID 9132 initial check: alive=True 2026-04-21 19:28:15,589 - backend.services.cuda - INFO - CUDA binary is up to date (server=v0.4.4, libs=cu128-v1) INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:17493 (Press CTRL+C to quit) INFO: 127.0.0.1:59989 - "OPTIONS /profiles HTTP/1.1" 200 OK INFO: 127.0.0.1:58994 - "OPTIONS /history?limit=20 HTTP/1.1" 200 OK INFO: 127.0.0.1:58644 - "OPTIONS /effects/presets HTTP/1.1" 200 OK INFO: 127.0.0.1:52857 - "OPTIONS /tasks/active HTTP/1.1" 200 OK INFO: 127.0.0.1:59989 - "GET /tasks/active HTTP/1.1" 200 OK INFO: 127.0.0.1:52857 - "GET /profiles HTTP/1.1" 200 OK INFO: 127.0.0.1:58644 - "GET /history?limit=20 HTTP/1.1" 200 OK INFO: 127.0.0.1:58994 - "GET /effects/presets HTTP/1.1" 200 OK INFO: 127.0.0.1:58994 - "OPTIONS /profiles/b7505ca8-0590-426f-8190-2bf6134801b9 HTTP/1.1" 200 OK INFO: 127.0.0.1:58994 - "GET /profiles/b7505ca8-0590-426f-8190-2bf6134801b9 HTTP/1.1" 200 OK INFO: 127.0.0.1:58994 - "OPTIONS /health HTTP/1.1" 200 OK INFO: 127.0.0.1:58994 - "GET /health HTTP/1.1" 200 OK INFO: 127.0.0.1:56717 - "OPTIONS /generate/de5e8028-6b29-43b1-80b2-ae6320a47f33/retry HTTP/1.1" 200 OK INFO: 127.0.0.1:56717 - "POST /generate/de5e8028-6b29-43b1-80b2-ae6320a47f33/retry HTTP/1.1" 200 OK INFO: 127.0.0.1:56717 - "GET /history?limit=20 HTTP/1.1" 200 OK INFO: 127.0.0.1:60461 - "GET /generate/de5e8028-6b29-43b1-80b2-ae6320a47f33/status HTTP/1.1" 200 OK 'sox' is not recognized as an internal or external command, operable program or batch file. 2026-04-21 19:28:35,806 - sox - WARNING - SoX could not be found! If you do not have SoX, proceed here: - - - http://sox.sourceforge.net/ - - - If you do (or think that you should) have SoX, double-check your path variables. 2026-04-21 19:28:40,846 - backend.backends.pytorch_backend - INFO - Loading TTS model 1.7B on cuda... 2026-04-21 19:28:40,846 - backend.utils.hf_offline_patch - INFO - [offline-guard] qwen-tts-1.7B is cached � forcing offline modetorch_dtypeis deprecated! Usedtypeinstead! 2026-04-21 19:28:40,853 - qwen_tts.core.models.configuration_qwen3_tts - INFO - talker_config is None. Initializing talker model with default values 2026-04-21 19:28:40,853 - qwen_tts.core.models.configuration_qwen3_tts - INFO - speaker_encoder_config is None. Initializing talker model with default values 2026-04-21 19:28:40,853 - qwen_tts.core.models.configuration_qwen3_tts - INFO - code_predictor_config is None. Initializing code_predictor model with default values 2026-04-21 19:28:40,854 - qwen_tts.core.models.configuration_qwen3_tts - INFO - code_predictor_config is None. Initializing code_predictor model with default values 2026-04-21 19:28:44,073 - qwen_tts.core.tokenizer_12hz.configuration_qwen3_tts_tokenizer_v2 - INFO - encoder_config is None. Initializing encoder with default values 2026-04-21 19:28:44,073 - qwen_tts.core.tokenizer_12hz.configuration_qwen3_tts_tokenizer_v2 - INFO - decoder_config is None. Initializing decoder with default values 2026-04-21 19:28:45,017 - backend.utils.progress - ERROR - Marked qwen-tts-1.7B as error: Cannot reach https://huggingface.co/api/models/Qwen/Qwen3-TTS-12Hz-1.7B-Base: offline mode is enabled. To disable it, please unset theHF_HUB_OFFLINEenvironment variable. Traceback (most recent call last): File "backend\services\generation.py", line 64, in run_generation File "backend\backends\__init__.py", line 400, in load_engine_model File "backend\backends\pytorch_backend.py", line 86, in load_model_async File "asyncio\threads.py", line 25, in to_thread File "concurrent\futures\thread.py", line 59, in run File "backend\backends\pytorch_backend.py", line 118, in _load_model_sync File "qwen_tts\inference\qwen3_tts_model.py", line 118, in from_pretrained processor = AutoProcessor.from_pretrained(pretrained_model_name_or_path, fix_mistral_regex=True,) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\models\auto\processing_auto.py", line 396, in from_pretrained return processor_class.from_pretrained( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\processing_utils.py", line 1394, in from_pretrained args = cls._get_arguments_from_pretrained(pretrained_model_name_or_path, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\processing_utils.py", line 1453, in _get_arguments_from_pretrained args.append(attribute_class.from_pretrained(pretrained_model_name_or_path, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2113, in from_pretrained return cls._from_pretrained( ^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2395, in _from_pretrained tokenizer = cls._patch_mistral_regex( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2438, in _patch_mistral_regex if _is_local or is_base_mistral(pretrained_model_name_or_path): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "transformers\tokenization_utils_base.py", line 2432, in is_base_mistral model = model_info(model_id) ^^^^^^^^^^^^^^^^^^^^ File "huggingface_hub\utils\_validators.py", line 114, in _inner_fn File "huggingface_hub\hf_api.py", line 2660, in model_info File "requests\sessions.py", line 605, in get File "requests\sessions.py", line 592, in request File "requests\sessions.py", line 706, in send File "huggingface_hub\utils\_http.py", line 107, in send huggingface_hub.errors.OfflineModeIsEnabled: Cannot reach https://huggingface.co/api/models/Qwen/Qwen3-TTS-12Hz-1.7B-Base: offline mode is enabled. To disable it, please unset theHF_HUB_OFFLINEenvironment variable.jamiepine commentedon Apr 22, 2026
Yeah I fixed this and tested—it worked so I shipped the update as fast as possible, looking into your errors now. maybe I missed a code path...
jamiepine commentedon Apr 22, 2026
Sorry about the 0.4.4 miss everyone — tracked down the real root cause and fix is up in #530 (draft, verifying locally before tagging 0.4.5).
Short version:
transformers4.57.x added an unconditionalhuggingface_hub.model_info()call insideAutoTokenizer.from_pretrained(via_patch_mistral_regex) that fires on every non-local tokenizer load, regardless of cache state or whether the model is actually a Mistral variant. Voicebox never loads Mistral models, but the check still runs — and it raisesOfflineModeIsEnabledwheneverHF_HUB_OFFLINE=1is set, which our load-time offline guard was flipping on cached loads.0.4.4 removed the inference-path guard, which is why you got further into the flow than on 0.4.3 — but the load-path guard was still there walking into the same landmine. My claim in the 0.4.4 PR that the load guards "worked fine in 0.4.2" was wrong; they were breaking silently, just hidden behind the more visible inference crash.
Fix in #530:
_patch_mistral_regexso exceptions from the HF metadata check are caught and the tokenizer is returned unchanged (which is what the success path does for non-Mistral repos anyway)force_offline_if_cachedguards entirely — with the wrapper in place they provide zero valueWill tag 0.4.5 as soon as I finish the bundled-binary smoke test. Thanks for the logs — the stack traces from @diflartle and @homelabguy5539 made the root cause unambiguous.
diflartle commentedon Apr 22, 2026
Thanks man, and cool project!
fix(offline): install mistral-regex patch for non-MLX backends
fix(offline): patch transformers mistral-regex check to survive HF fa…