FuelLabs/fuel-core · error

Not implemented yet

Error message

Not implemented yet

What it means

The parallel-executor crate's Executor wraps a working fuel_core_upgradable_executor::Executor (field _executor at crates/services/parallel-executor/src/executor.rs:41-45), but produce_without_commit_with_source is still a stub whose whole body is unimplemented!(). The crate compiles fine; the panic fires at runtime with 'Not implemented yet' as soon as the method is called, unwinding the thread instead of returning an ExecutorResult. The method mirrors the block-producer executor interface, so call sites ported from the standard executor will look correct but abort.

Source

Thrown at crates/services/parallel-executor/src/executor.rs:107

        Self {
            _executor: Arc::new(RwLock::new(executor)),
            runtime: Some(runtime),
            _number_of_cores: number_of_cores,
        }
    }
}

impl<S, R> Executor<S, R> {
    /// Produces the block and returns the result of the execution without committing the changes.
    pub async fn produce_without_commit_with_source<TxSource>(
        &self,
        _components: Components<TxSource>,
    ) -> ExecutorResult<Uncommitted<ExecutionResult, Changes>>
    where
        TxSource: TransactionsSource + Send + Sync + 'static,
    {
        unimplemented!("Not implemented yet");
    }

    pub fn validate(
        &self,
        _block: &Block,
    ) -> ExecutorResult<Uncommitted<ValidationResult, Changes>> {
        unimplemented!("Not implemented yet");
    }

    #[cfg(feature = "wasm-executor")]
    pub fn validate_uploaded_wasm(
        &self,
        _wasm_root: &Bytes32,
    ) -> Result<(), UpgradableError> {
        unimplemented!("Not implemented yet");
    }

    /// Executes the block and returns the result of the execution without committing

View on GitHub (pinned to b9d4d170da)

Solutions

  1. Route block production through fuel_core_upgradable_executor::executor::Executor (the very type held in _executor), which implements produce_without_commit_with_source.
  2. If you must keep this type, implement the method by delegating to the inner UpgradableExecutor behind its Arc<RwLock<..>>.
  3. Pin to the released fuel-core executor service and track the parallel-executor crate until its stubs are wired upstream.
  4. In exploratory code only, wrap the call in std::panic::catch_unwind to convert the panic into an error and fall back.

Example fix

// before — panics with 'Not implemented yet'
let result = executor.produce_without_commit_with_source(components).await?;

// after — use the upgradable executor that actually implements the API
use fuel_core_upgradable_executor::executor::Executor as UpgradableExecutor;
let result = upgradable_executor.produce_without_commit_with_source(components).await?;
Defensive patterns

Strategy: fallback

Try / catch

// unimplemented!() panics; only containable via catch_unwind (exploratory use only)
use std::panic::{catch_unwind, AssertUnwindSafe};
let outcome = catch_unwind(AssertUnwindSafe(|| {
    // known-stub call; production code must not reach here
    executor.produce_without_commit_with_source(components)
}));
let result = outcome.unwrap_or_else(|_| {
    // fall back to the upgradable executor
    upgradable_executor.produce_without_commit(components)
});

Prevention

When it happens

Trigger: Constructing Executor::new(storage_view_provider, relayer_view_provider, config) from the parallel-executor service and calling .produce_without_commit_with_source(components).await with any Components<TxSource> — the panic fires immediately, before any transaction is read.

Common situations: Swapping fuel-core's standard executor for the experimental parallel-executor in a custom node build or fork; porting block-production code that works against fuel_core_upgradable_executor onto this type; enabling a feature that routes production through this crate before its implementation landed.

Related errors


AI-assisted analysis of FuelLabs/fuel-core@b9d4d170da (2026-08-16). Data as JSON: /api/errors/59c5dd9bb68bb53c. Report an issue: GitHub.