SpikerSoft.EventHandlers.ArtPipeProcessor.Services.ArtPipeStageException:
Model manifest not found: /opt/art_pipe/models/TripoSG/artpipe.json
at SubprocessArtPipeStageExecutor.ExecuteAsync(...):line 42
at ArtPipeStageOrchestrator.ExecuteStageAsync(...):line 318
Stage 'modeling' failed for asset 6a4b0e76e3470f45ff654597 (07 Jul 2026 14:18:03)
Assets die at modeling, so no mesh / texture / rig / animation / export artifacts are ever produced → the Art Studio asset-detail 3D viewer and downloads have nothing to show. This is the likely root cause behind the "can't see/preview produced assets" report.
Root cause — prod provisioning gap, not a code bug
SubprocessArtPipeStageExecutor hard-requires {PipelineRoot}/models/{ModelDir}/artpipe.json (SubprocessArtPipeStageExecutor.cs:39-42) and fails fast if absent. Config maps ArtPipe:StageSettings:modeling.ModelDir = "TripoSG" (appsettings.json, in place since #348) and prod PipelineRoot = /opt/art_pipe. TripoSG (manifest + venv + weights) is not installed at /opt/art_pipe/models/TripoSG/ on the prod GPU worker.
Confirmed present in the dev art_pipe checkout (models/TripoSG/artpipe.json exists locally, alongside InstantMesh / TripoSR / Hunyuan3D / SF3D / ShapE / etc.), so the executor is behaving correctly — the model just isn't vendored on prod.
Remediation (pick one)
Preferred: install/vendor TripoSG on the prod GPU worker at /opt/art_pipe/models/TripoSG/ (manifest + venv + weights), same as the other installed models. Ties into #432 (repo-vendoring model venvs) and #425 (full local pipeline).
Interim workaround: repoint modeling.ModelDir to an image_to_3d-capable model that is installed on prod (InstantMesh / TripoSR / Hunyuan3D all expose image_to_3d) in appsettings.jsonStageSettings, then redeploy the ArtPipeProcessor.
Triage aid
On the GPU worker: ls /opt/art_pipe/models/*/artpipe.json to confirm what's actually vendored vs the StageSettings mapping (concept→SDXLLightning, modeling→TripoSG, texturing→Hunyuan3DPaint, rigging/animation/export→Blender). Any other stage whose configured ModelDir isn't installed will fail identically.
Related: #445 (restart-from-stage modeling 400), #432, #425. The separate Art-Studio-side UX gap (detail 3D viewer doesn't auto-load a model) is being fixed in an angular PR referencing #446.
## Symptom (production, learn.spikersoft.com)
The `modeling` stage fails for assets:
```
SpikerSoft.EventHandlers.ArtPipeProcessor.Services.ArtPipeStageException:
Model manifest not found: /opt/art_pipe/models/TripoSG/artpipe.json
at SubprocessArtPipeStageExecutor.ExecuteAsync(...):line 42
at ArtPipeStageOrchestrator.ExecuteStageAsync(...):line 318
Stage 'modeling' failed for asset 6a4b0e76e3470f45ff654597 (07 Jul 2026 14:18:03)
```
Assets die at `modeling`, so **no mesh / texture / rig / animation / export artifacts are ever produced** → the Art Studio asset-detail 3D viewer and downloads have nothing to show. This is the likely root cause behind the "can't see/preview produced assets" report.
## Root cause — prod provisioning gap, not a code bug
`SubprocessArtPipeStageExecutor` hard-requires `{PipelineRoot}/models/{ModelDir}/artpipe.json` (`SubprocessArtPipeStageExecutor.cs:39-42`) and fails fast if absent. Config maps `ArtPipe:StageSettings:modeling.ModelDir = "TripoSG"` (`appsettings.json`, in place since #348) and prod `PipelineRoot = /opt/art_pipe`. **TripoSG (manifest + venv + weights) is not installed at `/opt/art_pipe/models/TripoSG/` on the prod GPU worker.**
Confirmed present in the dev art_pipe checkout (`models/TripoSG/artpipe.json` exists locally, alongside InstantMesh / TripoSR / Hunyuan3D / SF3D / ShapE / etc.), so the executor is behaving correctly — the model just isn't vendored on prod.
## Remediation (pick one)
1. **Preferred:** install/vendor TripoSG on the prod GPU worker at `/opt/art_pipe/models/TripoSG/` (manifest + venv + weights), same as the other installed models. Ties into #432 (repo-vendoring model venvs) and #425 (full local pipeline).
2. **Interim workaround:** repoint `modeling.ModelDir` to an `image_to_3d`-capable model that *is* installed on prod (InstantMesh / TripoSR / Hunyuan3D all expose `image_to_3d`) in `appsettings.json` `StageSettings`, then redeploy the ArtPipeProcessor.
## Triage aid
On the GPU worker: `ls /opt/art_pipe/models/*/artpipe.json` to confirm what's actually vendored vs the `StageSettings` mapping (concept→SDXLLightning, modeling→**TripoSG**, texturing→Hunyuan3DPaint, rigging/animation/export→Blender). Any other stage whose configured `ModelDir` isn't installed will fail identically.
Related: #445 (restart-from-stage modeling 400), #432, #425. The separate Art-Studio-side UX gap (detail 3D viewer doesn't auto-load a model) is being fixed in an angular PR referencing #446.
Status roll-up — the interim remediation is in flight, and this ticket now also carries the prod-vendoring residual from #456.
Remediation 2 (interim, in flight): the #368 cutover PRs repoint modeling to TripoSR (installed on prod) via Production overlays — spikersoft-backend PR #186 (StageSettings:modeling.ModelDir=TripoSR in the worker's appsettings.Production.json + ArtStudio:StageModelMap modeling→TripoSR in the API's). Once that merges and deploys, the modeling stage stops dying at the missing TripoSG manifest.
Remediation 1 (preferred, stays open here): vendor TripoSG on SERVER and repoint modeling back. The exact ops steps are now written down in spikersoft-infrastructure PR #13's docs/artpipe-server-cutover-runbook.md — §1 (git pull the /mnt/fusionio/spikersoft/art_pipe checkout; the prod checkout predates models/TripoSG, which is this bug), §2 (python3 bootstrap.py --model TripoSG inside a worker container), §6 (repoint StageModelMap modeling→TripoSG + add a spikersoft-artpipe-model-triposg resident stack).
New residual moved here from #456 (now closed):ShapE must be vendored on the SERVER mount the same way (bootstrap.py --model ShapE) before the shipped text→3D path produces meshes in prod. Same class of gap, same runbook procedure — one extra bootstrap line while an operator is already in there.
repoint modeling→TripoSG (StageModelMap + worker overlay) and add the triposg resident stack
verify: modeling produces GridFS artifacts on prod; a Text→3D submission produces a mesh
Status roll-up — the interim remediation is in flight, and this ticket now also carries the prod-vendoring residual from #456.
**Remediation 2 (interim, in flight):** the #368 cutover PRs repoint `modeling` to **TripoSR** (installed on prod) via Production overlays — spikersoft-backend PR #186 (`StageSettings:modeling.ModelDir=TripoSR` in the worker's `appsettings.Production.json` + `ArtStudio:StageModelMap` modeling→TripoSR in the API's). Once that merges and deploys, the modeling stage stops dying at the missing TripoSG manifest.
**Remediation 1 (preferred, stays open here):** vendor **TripoSG** on SERVER and repoint modeling back. The exact ops steps are now written down in spikersoft-infrastructure PR #13's `docs/artpipe-server-cutover-runbook.md` — §1 (`git pull` the `/mnt/fusionio/spikersoft/art_pipe` checkout; the prod checkout predates `models/TripoSG`, which is this bug), §2 (`python3 bootstrap.py --model TripoSG` inside a worker container), §6 (repoint `StageModelMap` modeling→TripoSG + add a `spikersoft-artpipe-model-triposg` resident stack).
**New residual moved here from #456 (now closed):** **ShapE** must be vendored on the SERVER mount the same way (`bootstrap.py --model ShapE`) before the shipped text→3D path produces meshes in prod. Same class of gap, same runbook procedure — one extra bootstrap line while an operator is already in there.
Host-side checklist to close this ticket:
- [ ] `git pull` the SERVER art_pipe checkout
- [ ] `bootstrap.py --model TripoSG` (venv + weights)
- [ ] `bootstrap.py --model ShapE` (venv + weights — #456 residual)
- [ ] repoint modeling→TripoSG (`StageModelMap` + worker overlay) and add the triposg resident stack
- [ ] verify: modeling produces GridFS artifacts on prod; a Text→3D submission produces a mesh
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Symptom (production, learn.spikersoft.com)
The
modelingstage fails for assets:Assets die at
modeling, so no mesh / texture / rig / animation / export artifacts are ever produced → the Art Studio asset-detail 3D viewer and downloads have nothing to show. This is the likely root cause behind the "can't see/preview produced assets" report.Root cause — prod provisioning gap, not a code bug
SubprocessArtPipeStageExecutorhard-requires{PipelineRoot}/models/{ModelDir}/artpipe.json(SubprocessArtPipeStageExecutor.cs:39-42) and fails fast if absent. Config mapsArtPipe:StageSettings:modeling.ModelDir = "TripoSG"(appsettings.json, in place since #348) and prodPipelineRoot = /opt/art_pipe. TripoSG (manifest + venv + weights) is not installed at/opt/art_pipe/models/TripoSG/on the prod GPU worker.Confirmed present in the dev art_pipe checkout (
models/TripoSG/artpipe.jsonexists locally, alongside InstantMesh / TripoSR / Hunyuan3D / SF3D / ShapE / etc.), so the executor is behaving correctly — the model just isn't vendored on prod.Remediation (pick one)
/opt/art_pipe/models/TripoSG/(manifest + venv + weights), same as the other installed models. Ties into #432 (repo-vendoring model venvs) and #425 (full local pipeline).modeling.ModelDirto animage_to_3d-capable model that is installed on prod (InstantMesh / TripoSR / Hunyuan3D all exposeimage_to_3d) inappsettings.jsonStageSettings, then redeploy the ArtPipeProcessor.Triage aid
On the GPU worker:
ls /opt/art_pipe/models/*/artpipe.jsonto confirm what's actually vendored vs theStageSettingsmapping (concept→SDXLLightning, modeling→TripoSG, texturing→Hunyuan3DPaint, rigging/animation/export→Blender). Any other stage whose configuredModelDirisn't installed will fail identically.Related: #445 (restart-from-stage modeling 400), #432, #425. The separate Art-Studio-side UX gap (detail 3D viewer doesn't auto-load a model) is being fixed in an angular PR referencing #446.
Status roll-up — the interim remediation is in flight, and this ticket now also carries the prod-vendoring residual from #456.
Remediation 2 (interim, in flight): the #368 cutover PRs repoint
modelingto TripoSR (installed on prod) via Production overlays — spikersoft-backend PR #186 (StageSettings:modeling.ModelDir=TripoSRin the worker'sappsettings.Production.json+ArtStudio:StageModelMapmodeling→TripoSR in the API's). Once that merges and deploys, the modeling stage stops dying at the missing TripoSG manifest.Remediation 1 (preferred, stays open here): vendor TripoSG on SERVER and repoint modeling back. The exact ops steps are now written down in spikersoft-infrastructure PR #13's
docs/artpipe-server-cutover-runbook.md— §1 (git pullthe/mnt/fusionio/spikersoft/art_pipecheckout; the prod checkout predatesmodels/TripoSG, which is this bug), §2 (python3 bootstrap.py --model TripoSGinside a worker container), §6 (repointStageModelMapmodeling→TripoSG + add aspikersoft-artpipe-model-triposgresident stack).New residual moved here from #456 (now closed): ShapE must be vendored on the SERVER mount the same way (
bootstrap.py --model ShapE) before the shipped text→3D path produces meshes in prod. Same class of gap, same runbook procedure — one extra bootstrap line while an operator is already in there.Host-side checklist to close this ticket:
git pullthe SERVER art_pipe checkoutbootstrap.py --model TripoSG(venv + weights)bootstrap.py --model ShapE(venv + weights — #456 residual)StageModelMap+ worker overlay) and add the triposg resident stack