---
title: MARKLESS_CAPTURE_OPAQUE_PROP
description: "Lazy handler prop capture is not resumable: a Markless compiler error."
sidebar: { hidden: true }
search: { keywords: ["CAPTURE_OPAQUE_PROP","capture opaque prop","markless error"] }
pagination: false
---

**Error** from the compiler, while it builds your `.tsrx` files.

## What happened

Markless prints the message, the reason, and a suggestion:

```text
MARKLESS_CAPTURE_OPAQUE_PROP: Cannot bind lazy symbol "<symbolId>" on component edge "<componentEdgeId>" because prop "<propName>" is not passed by the parent that renders "<componentName>", and this call site invokes it unconditionally.
An absent prop has no value to route at this component edge. An optional or guarded call folds to undefined; an unconditional call would throw after resume, so it stays a build error.
Call it optionally as <propName>?.(…), guard it with if (<propName>), or pass <propName> where "<componentName>" is rendered.
https://markless.dev/errors/MARKLESS_CAPTURE_OPAQUE_PROP
```

Words in angle brackets change from case to case.

## How to fix it

Start with the suggestion in the message above.

This page has no guide yet. [Help write it](/contributing/improve-these-docs).

## Where it comes from

`@markless/compiler` raises this code. Source:

- [packages/compiler/src/passes/capture-analysis.ts](https://github.com/compiled-run/markless/blob/main/packages/compiler/src/passes/capture-analysis.ts)

Read [how to read a Markless error](/tooling/diagnostics), or go back to [all error codes](/errors).
