Description
Summary
unitree-g1-groot-wbc fails during startup while deploying RerunBridgeModule.
Pydantic validation expects callable values for two Rerun configuration fields, but the blueprint passes dictionaries instead.
This reproduces consistently when the blueprint startup test is run in isolation.
Reproduction
cd ~/dimensional/dimos
uv run pytest \
'dimos/robot/test_blueprint_startup.py::test_blueprint_starts[unitree-g1-groot-wbc]' \
-m '' \
-vv -s --tb=long
Actual behavior
RerunBridgeModule fails to deploy with two Pydantic validation errors:
ValidationError: 2 validation errors for Config
visual_override.world/g1/joints
Input should be callable
input_type=dict
static.world/odometry/g1
Input should be callable
input_type=dict
The failure originates while constructing the Rerun bridge configuration.
The relevant traceback ends with:
RuntimeError: Failed to deploy module: ValidationError: 2 validation errors for Config
visual_override.world/g1/joints
Input should be callable
static.world/odometry/g1
Input should be callable
As a result:
Blueprint 'unitree-g1-groot-wbc' exited during startup with code 1.
Expected behavior
The Rerun configuration supplied by unitree-g1-groot-wbc should preserve the callable values expected by RerunBridgeModule.Config.
The blueprint should be able to deploy the Rerun bridge without callable configuration values being converted or supplied as dictionaries.
Notes
This was reproduced independently after being observed in the full macOS test suite.
This does not appear to be the same hardware/config gating problem tracked in #4130. The failure occurs during module configuration validation before the blueprint reaches normal G1 hardware operation.
The underlying issue may be in blueprint configuration construction or serialization/deserialization between the coordinator and Python worker, since values expected to be callables are received as dictionaries.
Suggested labels
bug
QA provenance clarification
This issue was discovered during a macOS release QA pass using an additional local runtime startup harness that launched registered blueprints and checked whether they remained alive through startup.
The local QA harness was:
dimos/robot/test_blueprint_startup.py
That file was not tracked on main and was not an existing DimOS CI test.
The underlying failure documented in this issue was subsequently reproduced in isolation, so the bug itself remains valid. This clarification is only to correct the original issue wording where it may have implied that test_blueprint_startup.py was already part of the repository or CI.
Runtime startup coverage itself is being discussed separately in #4130.
Description
Summary
unitree-g1-groot-wbcfails during startup while deployingRerunBridgeModule.Pydantic validation expects callable values for two Rerun configuration fields, but the blueprint passes dictionaries instead.
This reproduces consistently when the blueprint startup test is run in isolation.
Reproduction
Actual behavior
RerunBridgeModulefails to deploy with two Pydantic validation errors:The failure originates while constructing the Rerun bridge configuration.
The relevant traceback ends with:
As a result:
Expected behavior
The Rerun configuration supplied by
unitree-g1-groot-wbcshould preserve the callable values expected byRerunBridgeModule.Config.The blueprint should be able to deploy the Rerun bridge without callable configuration values being converted or supplied as dictionaries.
Notes
This was reproduced independently after being observed in the full macOS test suite.
This does not appear to be the same hardware/config gating problem tracked in #4130. The failure occurs during module configuration validation before the blueprint reaches normal G1 hardware operation.
The underlying issue may be in blueprint configuration construction or serialization/deserialization between the coordinator and Python worker, since values expected to be callables are received as dictionaries.
Suggested labels
bugQA provenance clarification
This issue was discovered during a macOS release QA pass using an additional local runtime startup harness that launched registered blueprints and checked whether they remained alive through startup.
The local QA harness was:
That file was not tracked on
mainand was not an existing DimOS CI test.The underlying failure documented in this issue was subsequently reproduced in isolation, so the bug itself remains valid. This clarification is only to correct the original issue wording where it may have implied that
test_blueprint_startup.pywas already part of the repository or CI.Runtime startup coverage itself is being discussed separately in #4130.