---
title: MARKLESS_REPEAT_BINDING_NAME_CONFLICT
description: "Two @for loops give the same name two different meanings: a Markless compiler error."
sidebar: { hidden: true }
search: { keywords: ["REPEAT_BINDING_NAME_CONFLICT","repeat binding name conflict","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_REPEAT_BINDING_NAME_CONFLICT: "<name>" is one @for loop's item and another @for loop's index in the same file. Rename one of them.
Every @for expression in a file is compiled into readers that share one set of row bindings, so a name can bind to the row item or the row index, never to both.
Rename this loop's binding - two loops may reuse a name freely as long as both use it the same way (both items, or both indexes).
https://markless.dev/errors/MARKLESS_REPEAT_BINDING_NAME_CONFLICT
```

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/public-render/diagnostics.ts](https://github.com/compiled-run/markless/blob/main/packages/compiler/src/passes/public-render/diagnostics.ts)

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