---
title: MARKLESS_ELEMENT_HANDLE_PLURAL_IDREF
description: "An array-typed element() handle cannot fill this position: a Markless compiler error."
sidebar: { hidden: true }
search: { keywords: ["ELEMENT_HANDLE_PLURAL_IDREF","element handle plural idref","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_ELEMENT_HANDLE_PLURAL_IDREF: Cannot resolve <attributeName>={<source>} because "<handleName>" is declared as an array (element<T[]>()), so it names an ordered set of elements rather than one.
This attribute points at exactly one element. A handle declared with an array type argument may be bound on many elements, and an IDREF carries no order to say which member it means, so the compiler would have to pick one silently.
Declare a second, single element() handle for the one element this attribute points at and bind it there, leaving "<handleName>" for the set.
https://markless.dev/errors/MARKLESS_ELEMENT_HANDLE_PLURAL_IDREF
```

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

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