oasisprotocol / oasisprotocol/cli

ROFL deploy/replace-machine can leave active replicas running while configured machine pointer stays accepted (EXPIRED) and machine logs return 404

Open
#694 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
80
Forks
23
Avg merge
9h 43m
Merged PRs (30d)
3

Description

Summary

We are seeing a confusing ROFL operational state on testnet:

  • oasis rofl show --format json reports active replicas
  • the configured machine pointer still resolves to a machine that shows accepted (EXPIRED)
  • oasis rofl machine logs --yes for that machine returns 404 Not Found
  • oasis rofl deploy --replace-machine --yes does not give us a reliable operator-visible signal that a fresh machine was actually rented and started

This makes it hard to tell whether a new rollout really happened, and it blocks strict-mode validation of our ROFL app.

Environment
  • Oasis testnet
  • ROFL app using managed provider flow
  • CLI version in active use on 2026-04-12
Observed behavior
  1. oasis rofl show --format json shows active replicas.
  2. oasis rofl machine show for the configured machine ID shows accepted but also expired state.
  3. oasis rofl machine logs --yes returns 404 Not Found.
  4. oasis rofl deploy --replace-machine --yes completes, but from the operator point of view we still cannot confidently observe a fresh machine start.
Expected behavior

One of the following should happen clearly:

  • a fresh machine ID is created and surfaced to the operator, with logs available, or
  • the CLI should fail closed and state that replace-machine did not converge to a fresh runnable machine
Why this matters

From the application side, we can see that active replicas exist, but we cannot correlate them to a fresh rollout with accessible logs. That makes rollout validation ambiguous and turns debugging into guesswork.

Related issues
  • oasisprotocol/cli#487
  • oasisprotocol/cli#580
  • oasisprotocol/cli#584
Additional context

This is not the same as the previously diagnosed evm.SimulateCall / secure query limitation. We already worked around that at the application layer. The remaining blocker is specifically machine lifecycle / rollout observability.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the managed-provider flow with oasis rofl show --format json, machine show, machine logs --yes, and deploy --replace-machine --yes, using related issues #487, #580, and #584 for context. Trace how replacement reports the machine ID and readiness. Done means a fresh runnable machine is surfaced with accessible logs, or the CLI clearly fails closed when replacement does not converge.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.