---
type: how-to
title: Ein Marketplace-Publish-Versagen beheben
summary: "Eine Fix-it-Anleitung für die häufigsten Marketplace-Publish-Versagen: jeder Error-Code ist gelistet mit dem, was ihn auslöst, und den genauen Ein-Edit-und-erneut-versuchen-Schritten, die ihn beheben, ohne dass du uns bitten musst, irgendetwas neu zu prüfen."
---

Wenn das Veröffentlichen-oder-aktualisieren-Modal einen Fehler zurückgibt, oder du eine E-Mail von uns über ein Publish-Versagen bekommst, find deinen Error-Code unten und folg dem Fix. Sobald du den Fix in dein Repository pushst, klick erneut Veröffentlichen oder aktualisieren, um sofort neu zu prüfen, oder warte auf den nächsten täglichen Indexer-Lauf.

Jedes hier gelistete Versagen ist etwas, das du in deinem Repository beheben kannst. Siehst du deinen Fehler hier nicht, prüf die [vollständige Publish-Fehler-Referenz](/docs/marketplace-game-development/publish-failed-reference) für seltenere Codes.

## terms_accepted nicht gesetzt [#manifest-error-terms-accepted]

Du siehst das, wenn deine `caputchin.json` kein `"terms_accepted": true` auf oberster Ebene hat.

1. Öffne die `caputchin.json` deines Repositorys.
2. Lies die [Marketplace-Einreichungsbedingungen](/legal/submission-terms).
3. Füg `"terms_accepted": true` auf oberster Ebene des Manifests hinzu.
4. Committe und pushe.
5. Klick erneut Veröffentlichen oder aktualisieren, oder warte auf den nächsten täglichen Index-Lauf.

Der Wert muss das literale JSON-Boolean `true` sein. Strings (`"true"`), Zahlen (`1`) oder das Feld wegzulassen zählen alle als nicht akzeptiert.

## Lizenz nicht auf der genehmigten Liste [#manifest-error-license]

Du siehst das, wenn `license` fehlt, fehlerhaft ist oder einen Identifier außerhalb unserer [genehmigten Liste](/docs/marketplace-game-development/publish-failed-reference#approved-licenses) benennt.

1. Wähl einen SPDX-Identifier aus der genehmigten Liste, der deinen Code und die gebündelten Assets wirklich abdeckt.
2. Öffne `caputchin.json` und setz das `license`-Feld auf oberster Ebene, zum Beispiel `"license": "MIT"`.
3. Ist dein Code dual-lizenziert, nutz einen SPDX-`OR`-Ausdruck (z. B. `"MIT OR Apache-2.0"`). Mindestens ein Zweig muss auf der genehmigten Liste sein.
4. Ist dein Code MIT, bündelt aber Creative-Commons-Assets, nutz `AND` (z. B. `"MIT AND CC-BY-4.0"`). Jeder Zweig muss auf der genehmigten Liste sein.
5. Committe, pushe, versuch erneut.

Hängt dein Projekt von einer Lizenz ab, die nicht auf unserer genehmigten Liste ist (am häufigsten die GPL-Familie, AGPL oder LGPL), ist der einzige Fix, die betroffenen Komponenten neu zu lizenzieren oder zu entfernen. Wir können keine Ausnahmen auf Pro-Autor-Basis gewähren.

## Wir konnten dein Repository nicht finden [#repo-not-found]

Du siehst das, wenn unser Manifest-Abruf einen 404 zurückgibt.

Häufige Ursachen und Fixes:

- Dein Repository ist privat. Mach es öffentlich, oder entferne das `caputchin-game`-Topic, um nicht mehr im Index zu erscheinen.
- Deinem Repository fehlt das `caputchin-game`-GitHub-Topic. Füg es über den About-Abschnitt auf der Repository-Seite hinzu.
- Dein Repository hat keine `caputchin.json` im Root (oder, für Kind-Spiele in einer Sammlung, keine `caputchin.json` im Leaf-Verzeichnis).
- Die Repository-URL, die du eingegeben hast, ist falsch. Nutz `owner/name` oder die volle `https://github.com/owner/name`-URL.

Pushe eine `caputchin.json` in dein Repository, dann versuch erneut.

## Manifest-Struktur ist fehlerhaft [#manifest-error-structure]

Du siehst einen `manifest-error`, dessen Detail mit einem Feldnamen wie `entry`, `npm`, `games`, `marketplace.support` oder `run.modules[0].name` beginnt.

Das Detail sagt dir genau, welches Feld falsch ist:

- `entry: entry must be a clean relative path`: dein `entry`-Wert enthält Traversierung (`../`), absolute Slashes, Query-Strings oder Whitespace. Nutz einen sauberen repo-relativen Pfad wie `dist/game.js`.
- `npm: npm package name is malformed`: dein `npm`-Feld ist keine gültige npm-Koordinate. Nutz `name` oder `@scope/name`, nur Alphanumerische + Bindestriche + Punkte + Unterstriche.
- `games[i] must be a relative path inside the repo`: ein Kind-Pfad im `games`-Array deiner Sammlung entkommt dem Repo. Nutz Pfade wie `packages/leaf-memory`, nicht `../external` oder `/abs/path`.
- `run.entry must be a clean relative path`: dieselbe Hygiene-Regel wie `entry`, angewendet auf den optionalen Split-Run-Entry.
- `run.modules[i].name`: der Modul-Name muss `[a-zA-Z0-9_-]+\.(wasm|js)$` matchen und darf nicht `entry.js` oder `artifact.js` sein.

Bearbeite das benannte Feld gemäß der Regel, committe, pushe, versuch erneut.

## marketplace.author hat eine ungültige E-Mail [#manifest-error-author-email]

Du siehst das, wenn `marketplace.author.email` vorhanden ist, aber keiner normalen E-Mail-Form entspricht (ein `@`, eine gepunktete Domain, kein Whitespace).

1. Öffne `caputchin.json`.
2. Find `marketplace.author.email`.
3. Korrigier den Wert entweder zu einer echten E-Mail-Adresse (wir nutzen sie nur für Publish-Fehler-Benachrichtigungen) oder entferne das Feld ganz.
4. Committe, pushe, versuch erneut.

Du kannst auch den ganzen `marketplace.author`-Block entfernen, wenn du keine Publish-Fehler-Benachrichtigungen empfangen willst.

## Dein run-Artefakt ist nicht-deterministisch [#run-not-conforming]

Du siehst das, wenn unser Konformitäts-Smoke die `run(seed, trace)`-Funktion deines Spiels laufen lässt und sie kein konformes Urteil produziert.

Wichtig: das ist kein fatales Publish-Versagen. Dein Spiel ist trotzdem im Marketplace-Browse gelistet und kann eingebettet werden. Es zeigt nur **Nicht abspielbar** und kann keinen Site-Key gaten, bis das Determinismus-Problem behoben ist.

Häufige Ursachen:

- Deine Simulation liest `Date.now()`, `performance.now()`, `Math.random()` oder andere nicht-deterministische Globals.
- Deine Simulation liest externen Zustand (DOM, Netzwerk, Speicher), den wir zur Replay-Zeit nicht bereitstellen.
- Deine Simulation hängt von Fließkomma-Arithmetik ab, die sich zwischen Laufzeiten unterscheidet.

Beheb die Simulation, eine reine Funktion des Seeds und Trace zu sein, pushe, versuch erneut. Sieh dir [den Replay-Vertrag](/docs/marketplace-game-development/replay-contract#determinism-is-the-whole-requirement) für die Determinismus-Regel an und erwäg das optionale [Engine-Kit](/docs/marketplace-game-development/engine-kit), das einen deterministischen seedbaren RNG und Clock bereitstellt.

## Bundle-Abruf fehlgeschlagen [#bundle-fetch-failed]

Du siehst das, wenn die durch `entry` und/oder `npm` gepinnte Bundle-URL nicht abgerufen werden kann, einen Nicht-2xx zurückgibt oder 12MB überschreitet.

- Wenn du gerade eine neue Version gepusht hast: das CDN hat eventuell noch nicht propagiert. Warte eine Minute und versuch erneut.
- Ist dein Bundle über 12MB: trimm Assets, teil über die `run`-Deklaration in Module, oder verschieb große Assets auf einen anderen Auslieferungs-Pfad.
- Ist dein `npm`-Paket noch nicht veröffentlicht: veröffentlich es zuerst; wir können unveröffentlichte Versionen nicht abrufen.

## Zu viele Publish-Anfragen [#rate-limited]

Du siehst das im Manuell-Veröffentlichen-Modal, wenn du in den letzten 60 Sekunden mehr als zehn Anfragen eingereicht hast.

Warte 60 Sekunden und versuch erneut. Es gibt keinen Weg, das Limit zu erhöhen; es schützt den Endpunkt vor Missbrauch.

## Benachrichtigungs-E-Mails stoppen

Willst du aufhören, Publish-Fehler-E-Mails zu empfangen, sieh dir [Einreichungsbedingungen Abschnitt 10](/legal/submission-terms) an. Die Empfänger-Adresse ist dein `marketplace.author.email` im Manifest; es zu entfernen oder zu ändern stoppt die E-Mails.

## Siehe auch

- [Vollständige Publish-Fehler-Referenz](/docs/marketplace-game-development/publish-failed-reference)
- [An den Marketplace veröffentlichen](/docs/marketplace-game-development/publish-to-the-marketplace)
- [Marketplace-Einreichungsbedingungen](/legal/submission-terms)
