oasisprotocol / oasisprotocol/cli
ROFL deploy/replace-machine can leave active replicas running while configured machine pointer stays accepted (EXPIRED) and machine logs return 404
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 jsonreports active replicas- the configured machine pointer still resolves to a machine that shows
accepted (EXPIRED) oasis rofl machine logs --yesfor that machine returns404 Not Foundoasis rofl deploy --replace-machine --yesdoes 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
oasis rofl show --format jsonshows active replicas.oasis rofl machine showfor the configured machine ID showsacceptedbut also expired state.oasis rofl machine logs --yesreturns404 Not Found.oasis rofl deploy --replace-machine --yescompletes, 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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