Skip to content

DOCS-5014: Say model names can't reuse a module or training script name - #5425

Merged
Eliza Farley (elizafarley) merged 2 commits into
mainfrom
claude/DOCS-5014-model-name-registry-conflict
Oct 15, 2026
Merged

Eliza Farley (elizafarley) merged 2 commits into
mainfrom
claude/DOCS-5014-model-name-registry-conflict

Conversation

@shannonbradshaw

Copy link
Copy Markdown
Collaborator

Documents: DOCS-5014

Source changes

  • APP-15468 — app#13916: registry item names are unique per organization across all types. Submitting a training job or uploading a model whose name is already used by a module or training script is now rejected up front with "registry item with name already exists in this organization ()." Before, the training run finished, was billed, and then failed to publish. Reusing an existing ML model's name still adds a new version.

Docs changes

  • docs/train/train-a-model.md: the --model-name row said "Any string". It now says the name can't already be used by a module or training script, and that reusing a model's name adds a version. Prettier re-aligned the table.
  • docs/vision/deploy-and-maintain/deploy-custom-model.md: the upload form's Model name bullet now says the upload fails if a module or training script in the organization already uses the name.

How I found these

  • Search set: --model-name, Model name, already exists, Any string across docs/ and static/. The CLI reference rows ("The name of the ML model") are still correct.
  • DOCS-5014 matched through APP-15468's parent APP-18188.
  • Pre-PR checks: prettier (repo-local 3.2.5), markdownlint, vale 3.12.0, frontmatter_rules.py and make build-prod passed.

Generated by daily docs change agent

🤖 Generated with Claude Code

https://claude.ai/code/session_01XwNXFK9ZE8y7xJ9BCaDCib


Generated by Claude Code

app#13916 (APP-15468) rejects a training job or model upload whose name
is already used by a non-ML-model registry item in the organization,
before the training run starts: "registry item with name <name> already
exists in this organization". train-a-model.md said --model-name accepts
any string.
@viambot viambot added the safe to build This pull request is marked safe to build from a trusted zone label Oct 15, 2026
@netlify

netlify Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for viam-docs ready!

Name Link
🔨 Latest commit 0084831
🔍 Latest deploy log https://app.netlify.com/projects/viam-docs/deploys/6ad0d86791741143fc725ecc
😎 Deploy Preview https://deploy-preview-5425--viam-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 48 (🟢 up 10 from production)
Accessibility: 100 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: 60 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@elizafarley

Copy link
Copy Markdown
Contributor

Docs review: Ready to merge

Documents app#13916: a model name can no longer reuse the name of a module or training script in the same organization. This applies both to training jobs and to model uploads. I checked every claim against viamrobotics/app main, and all of them hold. The two nits below are optional precision fixes.

CI: All required checks passing

Docs health: No regressions

Nits

  • docs/train/train-a-model.md:85: the claim that reusing an existing model's name adds a new version holds only when --model-framework matches the existing model. Training rejects a mismatch with "a model already exists with a different framework" (mltraining/ml_training_service.go:66, checked at :235). That rule predates this PR, but this row is now the place a reader learns about reusing names. Fix: append "with the same framework" to the end of the cell.
  • docs/train/train-a-model.md:85 and docs/vision/deploy-and-maintain/deploy-custom-model.md:68: the check rejects a name held by any non-model registry item. "Module or training script" covers the cases users will realistically hit. The other types are archive and slam_map (data/registry_item.go:303-308), so the wording is accurate in practice but not exhaustive. Fix: optional, for example "already used by another registry item, such as a module or training script."
Verified against source (5 claims)
  • Registry item names are unique per organization across all types: viamrobotics/app data/registry_item.go:235-238 (ErrRegistryItemNameTaken)
  • Training submission is rejected when the name belongs to a non-ML-model registry item: viamrobotics/app mltraining/ml_training_service.go:517-526, called from SubmitTrainingJob and validateAndSetupCustomJobs
  • Reusing an existing ML model's name doesn't trip the new check (passes when item.Type == ml_model): mltraining/ml_training_service.go:525
  • Model upload fails when a different-type registry item holds the name: viamrobotics/app packages/packages.go:448
  • The upload UI now shows the server's error message: ui/src/routes/(auth-required)/models/upload/model-upload-container.svelte:71

Automated review by Claude. Rerunning the review updates this comment.

A reused model name adds a version only with the same framework
(errModelFrameworkMismatch), and the name check covers every non-model
registry item type, not only modules and training scripts.

Copy link
Copy Markdown
Collaborator Author

Thanks. I applied both nits in 0084831:

  • The --model-name row now says that reusing a model's name adds a version "with the same framework". This matches errModelFrameworkMismatch.
  • Both pages now say "another registry item in the organization, such as a module or training script", which also covers archive and slam_map.

Generated by Claude Code

@elizafarley
Eliza Farley (elizafarley) merged commit 9d24933 into main Oct 15, 2026
14 checks passed
@elizafarley
Eliza Farley (elizafarley) deleted the claude/DOCS-5014-model-name-registry-conflict branch October 15, 2026 13:49
@github-actions

Copy link
Copy Markdown

🔎💬 Inkeep AI search and chat service is syncing content for source 'Viam Docs'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to build This pull request is marked safe to build from a trusted zone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants