---
title: MARKLESS_SHARED_FACTORY_CLASS_INSTANCE
description: "A shared() factory cannot return a class instance: a Markless compiler error."
sidebar: { hidden: true }
search: { keywords: ["SHARED_FACTORY_CLASS_INSTANCE","shared factory class instance","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_SHARED_FACTORY_CLASS_INSTANCE: shared() definition "<name>" returns <constructorName>, so the definition declares no fields at all: the payload carries nothing for it, and both the server render and the browser handler name a value that was never built.
A shared() factory declares the graph fields the payload carries and the server render rebuilds. A class instance declares none, so every read of it is a reference to a binding that does not exist in the module doing the reading.
Return a plain object instead: the durable data becomes fields, and the behaviour becomes methods on the same object (`shared(() => ({ index: 0, next() { ... } }))`).
https://markless.dev/errors/MARKLESS_SHARED_FACTORY_CLASS_INSTANCE
```

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