project-nomad/admin
Chris Sherwood 447b174832 fix(ai): don't classify the backend as non-Ollama when it is merely unreachable
getModels() and the _isNativeBackend() probe both set isOllamaNative =
false in their catch blocks for ANY failure of GET /api/tags - including
a plain 5s timeout while Ollama is busy or still starting, or a refused
connection while the container is down. The probe memoized that verdict
for the process lifetime. Every model download then failed with 'Model
is not available in your AI host... (model pulling is only supported
for Ollama backends)' on stock single-Ollama installs (#1349, two
reporters on GA).

The fix separates 'the backend answered and is not Ollama' from 'the
request failed'. Only an actual HTTP response - a non-2xx status, or a
200 whose body fails the Ollama shape check - proves a live non-Ollama
server and classifies false. No response at all leaves the
classification untouched (null, or a previously proven value), the
probe unmemoized for re-probing, and the download path falls through to
the pull attempt, whose existing error handling reports the real
network error as a retryable failure.

Verified live (v1.35.0-rc.1 + this patch, Ollama container stopped):
- stock behavior reproduced verbatim: dispatch fails with the
  'only supported for Ollama backends' message
- patched: the same dispatch fails with 'Failed to download model:
  getaddrinfo ENOTFOUND nomad_ollama' and stays retryable
- after starting Ollama again, the retrying BullMQ job recovered on
  its own and installed the model with no user action

Fixes #1349

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-29 15:54:41 -07:00
..
app fix(ai): don't classify the backend as non-Ollama when it is merely unreachable 2026-09-29 15:54:41 -07:00
bin feat: curated content system overhaul 2026-02-11 15:44:46 -08:00
commands fix(queue): stop stalled-job recovery forking the embedding chain 2026-09-29 15:54:41 -07:00
config fix: lazy-connect + retry for ioredis to avoid blocked startup 2026-06-23 17:40:10 +00:00
constants feat(translate): offline translation for the Information Library (#1292) 2026-09-29 15:54:41 -07:00
database fix(ai): bump the Ollama pin to 0.33.3 to fix the disconnect hang 2026-09-29 15:54:41 -07:00
docs feat(translate): offline translation for the Information Library (#1292) 2026-09-29 15:54:41 -07:00
inertia fix(chat): abort abandoned response streams 2026-09-29 15:54:41 -07:00
providers fix(gpu): detect Ollama CPU fallback from logs so auto-remediation fires 2026-09-29 15:54:41 -07:00
public feat(creator-packs): add missing Modern Rogue banner asset (#1147) 2026-08-04 03:39:52 +00:00
resources chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
scripts refactor(drug-reference): make collections JSON the single source for curated data (#1130) 2026-08-04 03:38:35 +00:00
start feat(zim): let users browse the Kiwix library in any language 2026-09-29 15:54:41 -07:00
tests fix(chat): abort abandoned response streams 2026-09-29 15:54:41 -07:00
types feat(zim): let users browse the Kiwix library in any language 2026-09-29 15:54:41 -07:00
util Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040) 2026-08-04 03:38:33 +00:00
views chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
.editorconfig feat: initial commit 2025-06-29 15:51:08 -07:00
.env.example feat(creator-packs): gated per-creator video packs, offline via Kiwix (#1106) 2026-08-04 03:38:27 +00:00
ace.js feat: initial commit 2025-06-29 15:51:08 -07:00
adonisrc.ts feat(GPU): auto-remediate nomad_ollama passthrough loss on admin boot (#755) 2026-05-20 10:16:00 -07:00
eslint.config.js feat: openwebui+ollama and zim management 2025-07-09 09:08:21 -07:00
package-lock.json chore(deps): restore dev's package-lock 2026-09-29 15:54:41 -07:00
package.json refactor(maps): curate the marker icon set, drop the tree view 2026-09-29 15:54:41 -07:00
tailwind.config.ts feat: initial commit 2025-06-29 15:51:08 -07:00
tsconfig.json Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040) 2026-08-04 03:38:33 +00:00
vite.config.ts fix(Maps): ensure proper parsing of hostnames (#640) 2026-04-03 14:26:50 -07:00