billing i assumed so, yeah. quota i'm confused. is it 30s per step, with a total of 30s for all step
billing i assumed so, yeah. quota i'm confused. is it 30s per step, with a total of 30s for all steps summed?
Compute time per Workflow | 30 seconds of active CPU time



An RPC stub was not disposed properly. You must call dispose() on all stubs in order to let the other side know that you are no longer using them. You cannot rely on the garbage collector for this because it may take arbitrarily long before actually collecting unreachable objects. As a shortcut, calling dispose() on the result of an RPC call disposes all stubs within it.export const stepEffect = <A, E>(
step: { do: (name: string, fn: () => Promise<any>) => Promise<any> },
stepName: string,
effectFn: Effect.Effect<A, E, never>,
): Effect.Effect<A, E, never> => {
return Effect.promise(() => executeRpcWithCleanup(() => step.do(stepName, async () => Effect.runPromise(effectFn))))
}