Skip to content

seed-policies: one failed manifest fetch installs the fallback set as a complete v5, and later runs never repair it #350

Open

Description

@rbeauchamp

At main 9136aa4, scripts/seed-policies.sh can install an incomplete policy set that later runs never repair:

  • When the manifest.json fetch fails once (any curl failure, including the 5 s connect timeout), POLICY_FILES becomes FALLBACK_FILES: velstand.onnx, alpha_sitstand.onnx, alpha_ground_pick.onnx, the two kicks, the two rollers and roulade.onnx. It does not include alpha_walking.onnx or alpha_stand.onnx.
  • The staged set is then installed with write_source "$staging" "${POLICY_VERSION}", so its .source records version=v5, the same as a complete set.
  • On the next run have (5) is not below want (5), so the script exits before fetching anything. The incomplete set stays until POLICY_VERSION moves past it.

Observed with scripts/duck-sim, headless: the first start hit a DNS timeout on the manifest, the fallback set was installed, and the simulator stopped with error: no policy set in …/policies, because the simulator's params name alpha_walking.onnx and alpha_stand.onnx. Running the script again did not repair it; deleting the policies directory by hand did.

On a robot the fallback matches robotd's defaults, so it runs, but the set is still recorded as complete and any policy the manifest lists beyond the fallback stays missing until the next version.

A possible fix: record a fallback install so that it does not satisfy the version check (for example no version= in .source, or a separate marker), so the next run fetches the manifest again.

Activity

  1. homalozoa commented on Oct 5, 2026

    @homalozoa
    Contributor

    I reproduced this locally and opened #352 with regression tests. The fix lets existing fallback installs retry the same version and pick up the missing files when the manifest is reachable again.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions