---
title: "TYPO3 Exception 1234386924"
manual: "TYPO3 Exceptions"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3exceptions:typo3-exception-1234386924"
source: "Exceptions/1234386924.rst"
rendered: "2026-10-02T18:04:37+00:00"
---

# TYPO3 Exception 1234386924 {#typo3-exception-1234386924}

> [!NOTE]
> Below, the TYPO3 community may have provided additional information or
> solutions for this exception. However, these may or may not apply to your
> particular case. If you can provide more information, you should come back
> here and add your experience and solution steps to this issue once you have
> resolved it.
>
> General TYPO3 troubleshooting tips can be found in the *Troubleshooting*
> section in the menu. You can also ask questions and receive support in the
> [TYPO3 Questions category on talk.typo3.org](https://talk.typo3.org/c/typo3-questions/).
>
> To add your experience, click "Edit on GitHub" above and follow the
> ["Edit on GitHub" workflow](https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/Howto/EditOnGithub.html#docs-contribute-github-method).
> Also check out
> [our tip on Coding Style and reST](https://docs.typo3.org/permalink/t3exceptions:tip-about-rest-coding-style).

## TYPO3 13.5.9, 2025-05-12 Cannot create empty instance of the class "ObjectStorage"... {#typo3-13-5-9-2025-05-12-cannot-create-empty-instance-of-the-class-objectstorage}

> [!WARNING]
> (1/1) #1234386924 TYPO3CMSExtbasePersistenceGenericExceptionInvalidClassException
> Cannot create empty instance of the class "TYPO3CMSExtbasePersistenceObjectStorage" because it does not implement the TYPO3CMSExtbaseDomainObjectDomainObjectInterface.
>
> in /var/www/html/vendor/typo3/cms-extbase/Classes/Persistence/Generic/Mapper/DataMapper.php line 175

Happened when in an Extbase Model (AbstractEntity) the object Storage was missing information
about the type of objects to be saved.

Saved like this:

```diff
 class Theme extends AbstractEntity
 {
   protected string $name = '';
+  /** @var ?ObjectStorage<InfoCenter>  */
   protected ?ObjectStorage $infoCenter = null;
```

## Error-messages: {#error-messages}

1.  #1234386924: Cannot create empty instance of the class
    "TYPO3CMSExtbaseDomainRepositoryFrontendUserRepository" because
    it does not implement the
    TYPO3CMSExtbaseDomainObjectDomainObjectInterface.
1.  #1234386924: Cannot create empty instance of the class
    "TYPO3CMSExtbasePersistenceObjectStorage" because it does not
    implement the TYPO3CMSExtbaseDomainObjectDomainObjectInterface.

## Fix {#fix}

Assure that all classes in your model files are defined and annotated
correctly.

Below is an example for one property of another table:

```
/**
  * contact
  *
  * @var \Vendor\Extension\Domain\Model\Contact
  */
 protected $contact = NULL;

 /**
  * Returns the contact
  *
  * @return \Vendor\Extension\Domain\Model\Contact $contact
  */
 public function getContact() {
     return $this->contact;
 }

 /**
  * Sets the contact
  *
  * @param \Vendor\Extension\Domain\Model\Contact $contact
  * @return void
  */
 public function setContact(\Vendor\Extension\Domain\Model\Contact $contact) {
     $this->contact = $contact;
 }

```

A more complicated example is when records or files are handled by
ObjectStorage, this is an Object where several items can be stored and
items can be added and removed from a stack:

```
/**
 * member
 *
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Extension\Domain\Model\Member>
 */
 protected $member = NULL;

/**
 * __construct
 */
public function __construct() {
    //Do not remove the next line: It would break the functionality
    $this->initStorageObjects();
}

/**
 * Initializes all ObjectStorage properties
 * Do not modify this method!
 * It will be rewritten on each save in the extension builder
 * You may modify the constructor of this class instead
 *
 * @return void
 */
protected function initStorageObjects() {
    $this->member = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
}

/**
 * Adds a member
 *
 * @param \Vendor\Extension\Domain\Model\Member $member
 * @return void
 */
public function addMember(\Vendor\Extension\Domain\Model\Member $member) {
    $this->member->attach($member);
}

/**
 * Removes a member
 *
 * @param $memberToRemove The member to be removed
 * @return void
 */
public function removeMember(\Vendor\Extension\Domain\Model\Member $memberToRemove) {
    $this->member->detach($memberToRemove);
}

/**
 * Returns the member
 *
 * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Extension\Domain\Model\Member> $member
 */
public function getMember() {
    return $this->member;
}

/**
 * Sets the member
 *
 * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Extension\Domain\Model\Member> $member
 * @return void
 */
public function setMember(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $member) {
    $this->member = $member;
}
```
