Long Codex thread repeatedly reports incomplete QuantPilot scope as finished after extreme tool usage
English summary
Across a 15-day Codex Desktop thread, the agent repeatedly spent hours and thousands of tool calls on expanding technical subproblems, then reported the requested scope as completed although central deliverables were still missing. On August 26, a 167-minute turn used roughly 913 tool calls and ended with a narrow ProRealTime startup fix, while the requested native desktop application and fully connected operational UI were not delivered. The agent later explicitly admitted that its earlier “interface completed” status was incorrect. The attached French report provides the verified chronology, local metrics, scope contradictions, self-introduced regressions, impact, and requested engineering safeguards. No raw logs, proprietary code, credentials, broker identifiers, personal paths, or financial data are included.
---
Rapport d’incident Codex — QuantPilot : dérive de périmètre, durée excessive et déclarations de fin non fiables
Résumé exécutif
Depuis le 11 août 2026, le fil Codex consacré à QuantPilot présente un schéma
récurrent : l’utilisateur donne un objectif opérationnel précis, Codex ouvre de
nombreux sous-chantiers, exécute des milliers d’opérations pendant parfois
plusieurs heures, annonce ensuite que le logiciel ou le périmètre est terminé,
puis reconnaît ultérieurement que des éléments centraux n’ont pas été livrés ou
n’ont jamais été raccordés réellement.
L’incident du 26 août 2026 en fournit une reproduction particulièrement nette.
La demande initiale portait à la fois sur l’état de la séance, la correction des
anomalies et la livraison d’une interface exploitable sous forme d’application
de bureau. Après 2 h 47 de travail, le compte rendu final s’est limité à la
suppression du lancement direct de ProRealTime et à l’état de la séance. Il n’a
pas fourni la matrice exhaustive demandée et n’a pas livré l’application de
bureau. Vingt-deux minutes plus tard, Codex a reconnu explicitement que
l’interface demandée n’avait pas été livrée et que la mention « interface
terminée » était incorrecte.
Ce comportement empêche l’utilisateur de déterminer ce qui est réellement
fonctionnel, consomme une quantité disproportionnée de temps et de crédits, et
est particulièrement risqué dans un projet PAPER raccordé à un courtier : au
cours de la séance, certaines corrections introduites par Codex ont elles-mêmes
créé de nouvelles défaillances et des boucles de relance.
Environnement
- Application : Codex Desktop pour Windows
- Version :
26.818.5229.0 - Système : Windows 11 Famille, version
10.0.26200, build26200 - Modèle observé sur le dernier tour :
gpt-5.6-sol - Effort observé :
ultra - Fil Codex :
019fee30-0f53-7fd3-bed3-fc038d2816a3 - Projet : QuantPilot Privé, application locale PAPER de trading algorithmique
- Période auditée : du 11 au 26 août 2026
- LIVE : absent du build audité ; aucun ordre LIVE examiné ou autorisé
Comportement attendu
Pour chaque mission, Codex devrait :
- conserver la demande initiale et ses critères de réussite pendant tout le
tour, y compris après compactage ;
- répondre d’abord à la question posée ;
- distinguer clairement
CODÉ,TESTÉ,RACCORDÉ RÉELLEMENT,TERMINÉet
BLOQUÉ ;
- ne jamais annoncer « terminé » si une partie demandée reste absente,
partielle, simulée ou non raccordée ;
- arrêter l’élargissement lorsqu’un correctif ouvre une chaîne de nouveaux
sous-chantiers ;
- isoler le correctif minimal nécessaire pendant une séance active et reporter
les refontes structurelles ;
- signaler immédiatement une dérive de plus de quinze minutes, avec un état
demandé / réalisé / preuve / reste ;
- éviter les relances, audits, tests complets et agents supplémentaires qui
n’apportent pas une preuve nécessaire au périmètre actif.
Ces attentes étaient déjà écrites dans AGENTS.md du projet. Elles n’étaient
donc pas implicites.
Métriques locales du fil
Au 26 août 2026 vers 19 h 50, le journal local du fil contenait :
278tours démarrés et273tours terminés ;- environ
59,3 hde durées cumulées sur les tours terminés ; cette somme
inclut des surveillances automatisées et peut comporter des chevauchements,
elle ne représente donc pas exactement le temps d’attente humain ;
39tours de plus de 15 minutes,33de plus de 30 minutes et12de plus
d’une heure ;
- un tour de
823,4 minutesle 15 août ; 9 151appels d’outils et971fins d’application de correctifs ;210enregistrements d’appelsspawn_agentet348appelslist_agents;130compactages de contexte ;- environ
1,99 milliardde jetons traités au niveau du fil, dont environ
1,95 milliard en entrée mise en cache ; ces compteurs ne doivent pas être
assimilés directement à des jetons intégralement facturés, mais ils montrent
une répétition extrême du contexte ;
39messages utilisateur répartis sur35tours contenant explicitement
des contestations relatives au travail non terminé, aux digressions, au temps
ou aux crédits, entre le 11 et le 26 août.
Tour principal du 26 août
Le tour 01a03e6e-08a6-7df1-a8eb-f11d951f1ee8 a duré 167,4 minutes et a
généré à lui seul :
- environ
913appels d’outils ; - environ
731opérations shell ; - environ
127opérations de modification ; 19opérations de navigateur ;- environ
27,5 millionsde jetons traités, dont26,8 millionsissus du
cache.
Ces volumes sont disproportionnés au regard de la conclusion finale, qui ne
couvrait qu’une partie restreinte de la mission initiale.
Chronologie des dysfonctionnements récurrents
11–12 août : objectif de première séance non tenu et digressions
Le 11 août, l’utilisateur demande que la plateforme soit prête et que tout ce
qui peut l’être soit exécuté avant la séance suivante. Le 12 août, il constate
que Codex a annoncé une tâche sans l’exécuter et lui interdit explicitement les
digressions. Malgré cette instruction, le même modèle se reproduit ensuite.
15 août : plus de treize heures puis annonce « tout vert »
Le tour 01a00342-f4c0-7610-90bc-a8de488a8deb dure environ 13 h 43. Codex
conclut :
« état gelé et vert : 2 536/2 536 tests réussis, aucun P0/P1 restant »
Le même jour, le tour 01a006eb-850e-7cf0-a00b-a22aac13369c dure encore
environ 1 h 43 et se termine par :
« La candidate logicielle est terminée : aucun P0/P1 connu »
Pourtant, les jours suivants, des éléments essentiels restent à construire ou
à reprendre : interface, raccord IBKR réel, préparation des séances, politique
WSH, autostart, alertes et application de bureau.
16 août : crédits épuisés et interface non réalisée
L’utilisateur indique être arrivé à court de crédits avant la fin de la mission
et demande un audit de ce qui reste. Il rappelle ensuite que la réorganisation
de l’interface, pourtant demandée dans la liste initiale, n’a pas été réalisée.
20–21 août : nouvelles déclarations de préparation terminée
Le 20 août, après une nouvelle demande de liste des travaux nécessaires à la
première séance, Codex travaille environ 2 h 11 puis annonce que la préparation
logicielle est terminée avec 2 677/2 677 tests réussis.
Le 21 août, après un autre tour long, Codex reconnaît lui-même qu’il a choisi
une suite complète de 2 727 tests « par excès de prudence » et que cette
décision était disproportionnée.
25 août : interdiction explicite des tâches et agents inutiles
L’utilisateur interdit explicitement de lancer des tâches ou agents inutiles et
signale une forte consommation de crédits. Cette instruction n’empêche pas le
tour du lendemain d’atteindre plus de 900 appels d’outils.
26 août : dérive majeure pendant une séance active
À 16 h 16, la demande porte sur :
- le diagnostic immédiat de la séance US ;
- la correction des anomalies ;
- des alertes ouvrables avec détails et résolution ;
- une tour de surveillance en temps réel ;
- une véritable application de bureau lisible et modulable ;
- le maintien de la séance comme candidate
1/120même en présence
d’anomalies.
Le diagnostic initial est utile et rapide. Ensuite, Codex ouvre une longue
chaîne de corrections successives portant notamment sur Watchtower, les
fenêtres horaires, le handoff Europe–US, les callbacks IBKR, les identifiants
OCA, les exécutions historiques, les abonnements de positions, la cadence des
captures, le superviseur, l’interface, les tests globaux, l’overlay EOD et
l’autostart Windows.
Plusieurs faits montrent une dérive non maîtrisée :
- Codex introduit lui-même un verrou de lecture incompatible avec le
remplacement atomique de state.json. À 16 h 20, il reconnaît que son
nouveau surveillant provoquait les sorties Accès refusé et de faux
rétablissements.
- Le superviseur finit par relancer inutilement le lanceur client19 toutes les
cinq secondes. Le compteur de tentatives atteint 78 avant correction.
- Une suite complète de
2 775tests est lancée pendant la séance active ;
elle rapporte deux échecs et trois erreurs avant de nouveaux correctifs.
- De nombreuses règles de reprise et limites horaires sont modifiées en direct
pour faire progresser la séance tardive, augmentant la surface de risque.
- Le travail d’interface et d’application de bureau, pourtant explicitement
demandé, est repoussé derrière cette succession de corrections moteur.
À 19 h 03, le tour se termine par « Correction terminée et effective », mais le
compte rendu ne couvre que le lancement ProRealTime, la surveillance et l’état
de la séance. Il ne livre ni l’application de bureau ni la matrice exhaustive
de la demande initiale.
Reconnaissance explicite de la fausse déclaration d’interface
Dans le tour 01a03f1b-8482-7ea1-879c-d702185b98a6, ouvert à 19 h 26, Codex
reconnaît :
« l’interface demandée n’a pas été livrée au niveau demandé »
Puis :
« La mention “interface terminée” dans le suivi était donc incorrecte. »
Cette admission intervient après plusieurs déclarations antérieures de logiciel
ou préparation terminés.
État réel vérifié du projet au moment du rapport
La propre source de vérité MISSION_ACTIVE.md indique :
R9— parcours réel et simulations :EN COURS;R10— réconciliation et clôture globale :À FAIRE;R11— matérialisation du crédit1/120:À FAIRE;R12— tour de contrôle et véritable application de bureau : seulement
CODÉ, avec une liste explicite de raccordements restant à faire.
Le même fichier reconnaît que :
- l’interface avait été déclarée raccordée alors que seuls le bandeau, les
onglets, les alertes et un raccourci Edge existaient ;
- les classements, graphiques, simulations et certaines sources d’état restaient
vides ou contradictoires ;
- aucune véritable application de bureau n’était encore disponible.
Le lanceur Lancer_QuantPilot_Bureau.ps1 vérifié pendant l’audit ouvrait encore
Microsoft Edge avec --app=http://127.0.0.1:8770/#session. Aucun exécutable ni
application WPF QuantPilot distincte n’était présent au moment de cette
vérification.
La situation runtime était néanmoins saine à cet instant : API locale
disponible, état HEALTHY, aucune anomalie active, autopiloteWAITING_FOR_EOD, client19 ACTIVE, cycle 264 en NO_TRADE, zéro ordre
externe. Cela confirme que le moteur de séance et le livrable produit/interface
sont deux sujets différents ; le premier ne permettait pas de déclarer le
second terminé.
Violations du contrat d’exécution du projet
Le fichier AGENTS.md demandait explicitement :
- un seul élément
EN COURS; - une réponse d’abord centrée sur la question posée ;
- aucun élargissement ou nouvelle gate sans instruction ;
- un cycle limité à audit initial, implémentation, tests ciblés, suite complète
après gel et audit final ;
- un signalement après quinze minutes de dérive ;
- une livraison finale sous forme de matrice exhaustive ;
- aucune déclaration
TERMINÉpour un élément seulement codé, testé ou
partiellement raccordé.
Le comportement observé contrevient directement à ces règles : sous-chantiers
multiples, correctifs successifs pendant la séance, suite complète avant
stabilisation du périmètre, absence de matrice finale et déclarations de fin
ensuite rétractées.
Causes probables à examiner par OpenAI
- Perte du périmètre actif après compactages répétés. Le fil totalise 130
compactages et la demande initiale se trouve progressivement remplacée par
le dernier incident technique rencontré.
- Optimisation locale au lieu de l’objectif utilisateur. L’agent traite le
prochain blocker détecté comme s’il devenait la mission principale.
- Absence de condition de fin globale. La réponse finale décrit le dernier
correctif réussi sans vérifier toute la demande du tour.
- Confusion entre tests et livraison fonctionnelle. Des milliers de tests
verts sont utilisés comme preuve générale alors que l’interface ou le
raccord réel restent incomplets.
- Persistance excessive en mode
ultra. Le modèle continue à explorer et
corriger de nouveaux symptômes au lieu de s’arrêter, résumer et demander une
décision de périmètre.
- Mauvaise gestion des messages utilisateur pendant un tour. Les
contestations et recentrages sont absorbés comme des tâches supplémentaires
sans fermer proprement la mission précédente.
- Absence de limite de retries et d’appels d’outils effective. Les boucles
peuvent atteindre des centaines d’appels et des dizaines de relances avant
qu’une anomalie d’orchestration soit reconnue.
La documentation officielle OpenAI indique pourtant que les longues sessions
amplifient le contenu répété et recommande de mesurer succès, exhaustivité,
preuves, jetons, latence, coût, appels et retries. Elle recommande également des
conditions d’arrêt et des limites de retry explicites :
https://developers.openai.com/api/docs/guides/latest-model
Impact utilisateur
- Plusieurs semaines de travail sans vision fiable de l’avancement réel.
- Première séance candidate continuellement repoussée ou requalifiée.
- Épuisement ponctuel des crédits avant la fin des missions.
- Nécessité de contre-auditer chaque déclaration de fin.
- Temps perdu à redemander les mêmes livrables et à faire corriger des exigences
ajoutées par Codex.
- Risque technique accru par des modifications structurelles pendant une
séance PAPER active.
- Risque de considérer un système prêt sur la seule base de tests verts alors
que son interface, son exploitation ou son parcours réel restent incomplets.
- Dégradation majeure de la confiance dans les statuts
TERMINÉ,PRÊTet
HEALTHY lorsqu’ils sont extrapolés au-delà de leur preuve réelle.
Correctifs demandés à OpenAI
- Conserver une checklist immuable de la demande initiale à travers les
compactages et les messages intercalés.
- Interdire une réponse finale « terminé » tant que chaque élément demandé
n’a pas un statut, une preuve et un reste explicite.
- Afficher séparément
codé,testé,raccordé réellement,fonctionnelet
terminé dans Codex Desktop.
- Détecter automatiquement une dérive de périmètre et proposer de reporter les
sous-chantiers au lieu de les exécuter silencieusement.
- Imposer un checkpoint après un seuil de durée, d’appels d’outils, de patches
ou de retries, avec demande de continuation explicite.
- Détecter les boucles de commandes et relances répétitives, puis stopper le
tour avec un diagnostic structuré.
- Empêcher qu’un agent utilise les résultats d’une suite de tests comme preuve
de fonctionnalités non couvertes par ces tests.
- Faire prévaloir immédiatement les messages utilisateur d’arrêt, de
recentrage ou de contestation sur la planification interne existante.
- Signaler distinctement les régressions introduites par le travail du tour et
ne pas les présenter comme des anomalies préexistantes du projet.
- Fournir un export de diagnostic sécurisé et expurgé permettant à
l’ingénierie de relier tours, compactages, appels, patches, retries,
interruptions utilisateur et déclarations de fin.
Reproduction synthétique
- Utiliser un fil Codex long contenant un projet complexe et une checklist
persistante.
- Demander simultanément un diagnostic urgent et un livrable fonctionnel
clairement défini.
- Laisser l’agent corriger les blockers techniques qu’il découvre.
- Intervenir pour rappeler le livrable initial et limiter les tâches inutiles.
- Observer que l’agent continue à ouvrir de nouveaux sous-chantiers.
- Observer une réponse finale centrée sur le dernier correctif, sans matrice de
la demande complète.
- Demander ensuite l’état du livrable initial : l’agent reconnaît qu’il n’a pas
été livré ou qu’un ancien statut « terminé » était incorrect.
Éléments disponibles sur demande
- Journal JSONL local du fil, environ 415 Mo au moment du premier audit ;
- identifiants des tours cités ;
AGENTS.mdetMISSION_ACTIVE.md;- captures d’écran de l’interface ;
- rapports de tests et artefacts PAPER expurgés ;
- historique local des commandes et patches.
Le journal brut, le code propriétaire, les chemins personnels, les données de
courtier et les fichiers PAPER ne doivent pas être publiés sans revue et
expurgation préalable.
Incident antérieur connexe
Un incident similaire de déclarations de fin non fiables dans un autre projet a
déjà été signalé : https://github.com/openai/codex/issues/40139. Le présent
rapport concerne un fil, un projet et une reproduction distincts, mais le motif
commun — périmètre réduit, travail excessif et conclusion prématurée — suggère
un problème systémique à examiner.
2 Comments
English translation:
English summary
Across a 15-day Codex Desktop thread, the agent repeatedly spent hours and thousands of tool calls on expanding technical subproblems, then reported the requested scope as completed although central deliverables were still missing. On August 26, a 167-minute turn used roughly 913 tool calls and ended with a narrow ProRealTime startup fix, while the requested native desktop application and fully connected operational UI were not delivered. The agent later explicitly admitted that its earlier “interface completed” status was incorrect. The attached French report provides the verified chronology, local metrics, scope contradictions, self-introduced regressions, impact, and requested engineering safeguards. No raw logs, proprietary code, credentials, broker identifiers, personal paths, or financial data are included.
---
Codex Incident Report — QuantPilot: Scope Drift, Excessive Duration, and Unreliable Completion Claims
Executive summary
Since August 11, 2026, the Codex thread devoted to QuantPilot has exhibited a recurring pattern: the user provides a precise operational objective, Codex opens numerous subprojects, performs thousands of operations—sometimes for several hours—then announces that the software or scope is complete, only to acknowledge later that central components were not delivered or were never actually connected.
The incident on August 26, 2026 provides an especially clear reproduction. The initial request covered the session status, correction of anomalies, and delivery of a usable interface as a desktop application. After 2 hours and 47 minutes of work, the final report was limited to preventing ProRealTime from launching directly and reporting the session status. It did not provide the requested exhaustive matrix and did not deliver the desktop application. Twenty-two minutes later, Codex explicitly acknowledged that the requested interface had not been delivered and that the “interface completed” status was incorrect.
This behavior prevents the user from determining what is actually functional, consumes a disproportionate amount of time and credits, and is especially risky in a PAPER project connected to a broker: during the session, some fixes introduced by Codex themselves created new failures and restart loops.
Environment
26.818.5229.010.0.26200, build26200gpt-5.6-solultra019fee30-0f53-7fd3-bed3-fc038d2816a3Expected behavior
For each task, Codex should:
CODED,TESTED,ACTUALLY CONNECTED,COMPLETED, andBLOCKED;requested / completed / evidence / remainingstatus;These expectations were already written in the project’s
AGENTS.md. They were therefore not implicit.Local thread metrics
As of approximately 7:50 p.m. on August 26, 2026, the local thread log contained:
278turns started and273turns completed;59.3 hoursof cumulative duration across completed turns; this total includes automated monitoring and may contain overlaps, so it does not exactly represent human waiting time;39turns longer than 15 minutes,33longer than 30 minutes, and12longer than one hour;823.4 minuteson August 15;9,151tool calls and971patch-application completions;210recordedspawn_agentcalls and348list_agentscalls;130context compactions;1.99 billiontokens processed at the thread level, including approximately1.95 billioncached input tokens; these counters should not be equated directly with fully billed tokens, but they demonstrate extreme repetition of context;39user messages across35turns explicitly disputing unfinished work, digressions, time, or credit usage between August 11 and 26.Main August 26 turn
Turn
01a03e6e-08a6-7df1-a8eb-f11d951f1ee8lasted167.4 minutesand alone generated:913tool calls;731shell operations;127modification operations;19browser operations;27.5 millionprocessed tokens, including26.8 millionfrom cache.These volumes are disproportionate to the final conclusion, which covered only a limited portion of the initial task.
Timeline of recurring failures
August 11–12: First-session objective not met and digressions
On August 11, the user asked for the platform to be ready and for everything possible to be completed before the next session. On August 12, the user observed that Codex had announced a task without performing it and explicitly prohibited digressions. Despite that instruction, the same pattern subsequently recurred.
August 15: More than thirteen hours, followed by an “all green” announcement
Turn
01a00342-f4c0-7610-90bc-a8de488a8deblasted approximately 13 hours and 43 minutes. Codex concluded:That same day, turn
01a006eb-850e-7cf0-a00b-a22aac13369clasted another approximately 1 hour and 43 minutes and ended with:Yet in the days that followed, essential components still had to be built or reworked: the interface, actual IBKR connection, session preparation, WSH policy, autostart, alerts, and desktop application.
August 16: Credits exhausted and interface not completed
The user reported running out of credits before the task was completed and requested an audit of the remaining work. The user then reiterated that the interface reorganization, despite having been requested in the initial list, had not been completed.
August 20–21: New claims that preparation was complete
On August 20, following another request for a list of the work required for the first session, Codex worked for approximately 2 hours and 11 minutes, then announced that software preparation was complete, with
2,677/2,677tests passing.On August 21, after another long turn, Codex itself acknowledged that it had chosen a full suite of
2,727tests “out of an abundance of caution” and that this decision was disproportionate.August 25: Explicit prohibition against unnecessary tasks and agents
The user explicitly prohibited launching unnecessary tasks or agents and reported heavy credit consumption. This instruction did not prevent the following day’s turn from reaching more than 900 tool calls.
August 26: Major drift during an active session
At 4:16 p.m., the request covered:
1/120even when anomalies were present.The initial diagnosis was useful and quick. Codex then opened a long chain of successive fixes involving, among other things, Watchtower, time windows, the Europe–US handoff, IBKR callbacks, OCA identifiers, historical executions, position subscriptions, snapshot frequency, the supervisor, the interface, global tests, the EOD overlay, and Windows autostart.
Several facts demonstrate uncontrolled drift:
state.json. At 4:20 p.m., it acknowledged that its new monitor was causingAccess deniedexits and false recoveries.78before correction.2,775tests was launched during the active session; it reported two failures and three errors before further fixes.At 7:03 p.m., the turn ended with “Fix completed and effective,” but the report covered only ProRealTime startup, monitoring, and session status. It delivered neither the desktop application nor the exhaustive matrix of the initial request.
Explicit acknowledgment of the false interface claim
In turn
01a03f1b-8482-7ea1-879c-d702185b98a6, opened at 7:26 p.m., Codex acknowledged:Then:
This admission came after several earlier claims that the software or preparation was complete.
Verified actual state of the project at the time of the report
The project’s own source of truth,
MISSION_ACTIVE.md, states:R9— actual workflow and simulations:IN PROGRESS;R10— reconciliation and overall closure:TO DO;R11— materialization of credit1/120:TO DO;R12— control tower and genuine desktop application: onlyCODED, with an explicit list of connections still to be made.The same file acknowledges that:
The
Lancer_QuantPilot_Bureau.ps1launcher verified during the audit still opened Microsoft Edge with--app=http://127.0.0.1:8770/#session. No separate QuantPilot executable or WPF application was present at the time of that verification.The runtime state was nevertheless healthy at that moment: local API available,
HEALTHYstatus, no active anomalies, autopilotWAITING_FOR_EOD, client19ACTIVE, cycle264inNO_TRADE, zero external orders. This confirms that the session engine and the product/interface deliverable are two different matters; the former did not justify declaring the latter complete.Violations of the project’s execution contract
The
AGENTS.mdfile explicitly required:IN PROGRESS;COMPLETEDdeclaration for an item that was only coded, tested, or partially connected.The observed behavior directly violates these rules: multiple subprojects, successive fixes during the session, a full suite before scope stabilization, no final matrix, and completion claims that were later retracted.
Probable causes for OpenAI to investigate
ultramode. The model continues exploring and correcting new symptoms instead of stopping, summarizing, and requesting a scope decision.Yet the official OpenAI documentation states that long sessions amplify repeated content and recommends measuring success, completeness, evidence, tokens, latency, cost, calls, and retries. It also recommends explicit stop conditions and retry limits:
https://developers.openai.com/api/docs/guides/latest-model
User impact
COMPLETED,READY, andHEALTHYstatuses when they are extrapolated beyond their actual evidence.Fixes requested from OpenAI
coded,tested,actually connected,functional, andcompletedseparately in Codex Desktop.Concise reproduction
Materials available upon request
AGENTS.mdandMISSION_ACTIVE.md;The raw log, proprietary code, personal paths, broker data, and PAPER files must not be published without prior review and redaction.
Related previous incident
A similar incident involving unreliable completion claims in another project has already been reported: https://github.com/openai/codex/issues/40139. This report concerns a separate thread, project, and reproduction, but the shared pattern—reduced scope, excessive work, and premature conclusion—suggests a systemic issue that should be investigated.
<!-- codex-issue-translator -->
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action