[Bug Bash] env main doesn't work with Substrate main

Abierto
#113 2 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@rakyll ya está trabajando en esto.

Desde el 27/10/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

Summary

ate-env at main can't create environments on a cluster running current Substrate main.
Every CreateEnvironment fails, so the ate-env bug bash flow stops at step 1. No env branch
currently supports a Substrate newer than ddb46651.

Versions

Component Version
env main @ de462e9 (Go module pinned to Substrate 3a2ca623, 2026-10-16)
Substrate on cluster 834df30e (2026-10-20) — also reproduces with anything at or after a9958d16
Cluster GKE 1.35, gVisor node pool

Steps to reproduce

  1. Install Substrate from main (bug bash Quickstart: Setup + S1).
  2. Build ate-env from main (make images, make build-cli) and deploy:
    ate-env manifest --worker-image <ateworker-gvisor@digest> | kubectl apply -f -
  3. Register the template:
    ate-env manifest template --snapshots-bucket gs://<bucket>/ate-env/ | kubectl ate create actor-template -f -
  4. kubectl port-forward -n ate-env svc/ate-env-api 7777:7777 &
  5. ate-env create alice

Expected

The environment is created.

Actual

Step 3 fails first:

Error: failed to parse actor template manifest "-": proto: (line 1:445): unknown field "sandboxConfig"

With sandboxConfig stripped from the template by hand, step 5 then fails:

ate-env: env: rpc error: code = InvalidArgument desc = ate: creating "alice": rpc error: code = InvalidArgument desc = [actor.actor_template.atespace: Required value, actor.actor_template.name: Required value]

ate-env-api does send the template name and atespace; they arrive empty because the field
numbers no longer match.

Root cause

Two breaking Substrate API changes landed after env's pin (3a2ca623):

  1. substrate#2780 (0443aec3, 2026-10-17): removed ActorTemplate.sandbox_config. ate-api-server
    rejects unknown fields, so env's manifest template output is refused.
  2. substrate#2888 (a9958d16, 2026-10-19): renumbered proto fields consecutively
    ("The binary wire format changes for some messages"). Any client built against an older
    Substrate sends requests whose fields land in the wrong place. Hence the misleading
    Required value errors. That PR also says existing installs need a fresh database.

Current state of the fix

  • Branch bump-substrate-latest (40a6c63) bumps env to Substrate ddb46651 and handles #2780
    (no sandboxConfig). It also adds the ate-env manifest access-policy step that authz now requires.
    It is unmerged, and ddb46651 is before #2888, so it still fails against current Substrate.
  • Verified 10/26: env 40a6c63 + Substrate ddb46651 (fresh install) passes create, write/read,
    shell, MCP, suspend/resume, and --rootfs-image.

Workaround

Pin both sides: install Substrate at ddb46651 (fresh database) and build env from 40a6c63.
The bug bash ate-env tab now documents this pin.

Suggested fix

  1. Bump env's Substrate dependency past a9958d16 (to current main), regenerate, and merge
    (supersedes or extends bump-substrate-latest).
  2. Cut a release. The latest release (v0.0.10, 2026-08-25) predates manifest template, so the README's
    "download the latest release" path doesn't work either.
  3. In the README, state a supported Substrate range (upper bound too), not just "at or after X".
  4. Consider a version handshake or startup check in ate-env-api, so skew fails with
    "Substrate version mismatch" instead of Required value / invalid wire-format data.

Related

  • Delete fails with a GCS 403 on the pinned pair (filing separately).
  • Severity: P0 for the ate-env bug bash (core path broken; only workaround is pinning an older Substrate).
Lenguaje dominante
Go
Estrellas
71
Forks
17
Merge medio
21 h 36 min
PR fusionados (30 d)
19

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de agent-substrate/env

Todos los issues de agent-substrate/env

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.