Skip to content

ZIO's WithRun#runContext fails with an error #1236

@skelantros

Description

@skelantros

The following code fails with java.lang.Error: Defect in zio.ZEnvironment: Could not find ErrorExample::Context inside ZEnvironment(Any -> Context(42))

import tofu.WithRun
import tofu.zioInstances.implicits.zioTofuWithRunImplicit
import zio._

object ZIOWithRunError extends ZIOAppDefault {
  case class Context(x: Int)

  val app: RIO[Context, Unit] = ZIO.service[Context].flatMap(Console.printLine(_))

  override def run: ZIO[Any with ZIOAppArgs with Scope, Any, Any] =
    WithRun[RIO[Context, *], Task, Context].runContext(app)(Context(42))
}

Based on the error message, it seems like Context's tag is not used to build ZEnvironment when using WithRun instance, resulting in ZIO being unable to find Context instance in the environment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions