---
title: MARKLESS_TEMPLATE_EXPRESSION_UNSUPPORTED
description: "A markup expression that reads state needs a route the page can follow: a Markless compiler error."
sidebar: { hidden: true }
search: { keywords: ["TEMPLATE_EXPRESSION_UNSUPPORTED","template expression unsupported","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_TEMPLATE_EXPRESSION_UNSUPPORTED: <target> is written as `<source>`, which reads state but is not an expression this compiler can keep current.
An expression with no graph node behind it renders once, from whatever the value was at render, and a later write never reaches it - so the page would show a stale value and nothing would say so.
Write a plain read (`group.value`), or an expression built only from reads, operators and method calls on those reads. If the value needs a function of your own, put that function inside a `computed()` and read the computed here.
https://markless.dev/errors/MARKLESS_TEMPLATE_EXPRESSION_UNSUPPORTED
```

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).
