Recourir un webhook dont la première tentative est morte, et refuser un SDK ne peut pas lire
Une réclamation perdante sur une ligne non traitée a toujours répondu à 500, de sorte qu'un événement dont la première tentative a échoué (une course de contrai...
Seule une charge ratée commence à er rage, et Stripe doit s'entendre avant de lancer des actes
facture.statarié de report de statut - ouvert avec un montant dû pour chaque facture autofacturée avant la tentative de facturation, et la facture le gestionnai...
Le même engagement-reconstruit ne pouvait jamais tirer, et le contrôle du condensé s'est ouvert
Les deux protections contre un déploiement qui ne se déploie rien étaient inertes, de sorte que le pipeline ont signalé deux emplois verts tandis que les gousse...
Une ligne de catalogue désignant une application que cette version ne peut pas résoudre n'est pas à vendre
ServiceTypeConverter a cessé de lancer sur une application inconnue id et a commencé à le résoudre à nul, ce qu'un service doit faire - les enum navires à l'int...
Un prix dont Stripe n'a jamais entendu parler est une faute, pas un silence
Le conciliateur a comparé les prix cartographiés au catalogue et a été renvoyé tôt. chaque fois que rien n'était cartographié. Donc un terme que le catalogue av...
Chargez ce que dit l'écran, et refusez plutôt que de faire semblant
Un audit de la console Plans et Billing contre les clés rayées en direct a trouvé la couture entre l'écran et Stripe brisé dans chaque direction à la fois, et s...
Prouver le déploiement par digest, et non par étiquette
L'engagement précédent s'arrête « image de mise en place» étant un no-op silencieux. Cela affirme la résultat: après le déploiement, l'étiquette est résolue à u...
Une reconstruction du même engagement n'a rien déployé et a fait état d'un succès
L'image est étiquetée avec le commit SHA, donc la reconstruction du même commit produit une référence d'image identique. L'image de set kubectl change alors rie...
Laisse un déploiement finir ce que la vieille gousse faisait
Les déploiements ont remplacé la seule gousse de chaque service par rien pour saisir les demandes en vol. Trois réglages, appliqués sur l'ensemble de la flotte:...
Arrêtez d'offrir le plan de plate-forme interne à la vente
listPlansForMarket filtré sur isActive alone, et actif n'est pas la même chose que sur le menu. OWNER-UNLIMITED («Patform Owner - Internal») est actif, ne porte...
L'org de plate-forme n'est pas fermée par son propre catalogue
L'organisation de la plate-forme a été informée de "Requiert l'add-on KamoPBX Hosting" de son propre chef. écran de serveur téléphonique, pour un ajout qu'il pu...
Scanner le paquet de référentiel email.billing shared-lib
EnableJpaRepositories réprime explicitement les paquets, donc MailboxBillingDayRepository était invisible et le service a refusé de commencer tout simplement - ...
Fermer l'écart de idémpotency de BL0 de l'examen final trouvé
Constatation 1 (critique): une réclamation perdante sur un événement Rayonné refait uniquement Il a été prouvé qu'il existait une querelle, et non que la tentat...
Ne pas clér l'éphémère par ignée La bande crée
L'examen de la 2e série (Roulage 17) a trouvé que "est-ce un créer?" est nécessaire, mais pas de suffisants. La question qui compte : ce sujet peut-il légitimem...
Les clés appartiennent à Stripe crée seulement, pas sur les mutations
Le premier examen (Ruling 15) a trouvé le Critical: a stable idempotency une clé sur une mise à jour/annicis/attach/détacher n'est pas une protection, c'est un ...
Faire en sorte que chaque Stripe écrive idempotent, et échouer la construction sur un nouveau sans une clé
Une temporisation de socket sur une écriture de Stripe qui a effectivement réussi est indistinguable, de notre côté, d'un qui ne l'a pas fait; sans un idempoten...
Engagez le drapeau traité avec l'argent écrit, pas en avant
b) Il s'agissait d'un traité, le cas échéant, il a commis L'argent de l'utilisateur écrit était encore non engagé dans l'extérieur suspendu transactionnelle. Jp...
Arrêtez de vendre des add-ons le plan choisi inclut déjà
Le catalogue a toujours enregistré qui ajoute un paquet de plans, en - Port d'entreprises et d'entreprises la visioconférence, l'assistant d'IA, le système HR e...
Taille de la gousse au-dessus de son propre plafond de tas de la JVM [skip ci
L'image démarre la JVM avec -XX:MaxRAMPercentage-70-XX:-TemellementPreTouch, donc le Le tas seul peut prendre 70 % de la limite du conteneur et prétouche mainti...
L'annulation arrête la facturation à l'avenir et rien d'autre
L'annulation ne prend plus un drapeau "immédiat", et aucune route orientée vers le client ne peut demander pour un. Le passage est vrai a mis fin à l'abonnement...
Arrêter l'expédition d'un justificatif partagé en tant que défaut de configuration
Le mot de passe partagé de la plate-forme a été mis en place en tant que repli pour DB-PASSWORD et MINIO-ROOT-PASSWORD, donc il vivait dans ce repo et dans l'im...
Arrêter de révoquer l'accès d'un membre à la facturation lorsqu'il s'agit de l'ajouter ailleurs
add() a supprimé la ligne du membre sur tout autre compte pour satisfaire à un niveau unique global qui n'existe plus. Ajouter quelqu'un à un deuxième compte de...
Laissons un sous-org arriver sur le compte qui le paie
L'abonnement à un compte sépare délibérément le payeur de l'organisation dont les membres consomment les sièges, et les comptes auto-prémérés siègent au plus ha...
Charge ce que dit le catalogue, une fois, pour la bonne quantité
Cinq défauts qui ont tous déplacé de l'argent réel, plus l'IDOR de la sous-ressource en dessous d'eux. Cycles de facturation. Les prix ANNUELS ont été envoyés ...
Vérifier le mode dieu par rapport à la base de données, pas un en-tête falsifié
AccountOrgScopeInterceptor court-circuité chaque gis et vérification par membre en-tête X-God-Mode-Active brut, et les copies de facturation de kamo-internal qu...
CockroachDB uniquement SQL que PostgreSQL rejette
CockroachDB pare le type de texte STRING; PostgreSQL et YugabyteDB utilisent TEXT. 25 lancers à travers des requêtes natives étaient encore en train d'émettre C...
Donner à chaque organisation une véritable limite de transaction
StorageSnapshotSweep.catchUp transporté (REQUIRES-NEW) et a été appelé à partir de balayage() sur le même haricot. Le ressort s'applique: «Transactionnel par l'...
Appliquer l'auto-propriétaire sur un compte, pas seulement la limite de l'orge
Suivi de la porte d'orge, maintenant que la règle est décidée: à l'intérieur d'une organisation que vous pouvez gérer votre propre compte de facturation, et un ...
Arrêter une organisation d'atteindre une autre organisation
/api/billing/accounts donne son inscription par l'en-tête X-Org-Id, mais chaque itinéraire sous-marins J'ai pris l'id directement depuis le chemin et n'a jamais...
Réponse "est-ce que c'est vendable" du catalogue de l'application, pas de l'enum
La disponibilité est devenue modifiable par l'opérateur au moment de l'exécution, donc la déduire de ServiceType.getStage() signifiait la publication du MLOS da...
Valider les codes additionnels avant de pouvoir accorder une application
Les codes actifs'addon' ont été écrits directement à partir du corps de la demande. C'était inoffensif alors que rien n'était lu la colonne, mais c'est maintena...
Cacher les applications inédites du catalogue Plans et Billing
- à l'arrière de l'onglet où un client choisit à quoi souscrire, afin qu'il ne soit pas en mesure d'offrir un produit toujours dans la liste non disponible, la ...
Gardez l'isofix sur les noms de fil de PlatformAccountSummary aussi
Même danger de Lombok/Jackson en tant que PlatformOrgRow: is ToopLevel() perd son 'is' sérialisation, donc le DTO met "topLevel"/-------------------------------...
Maintenir le préfixe is-prefix sur le fil pour estTopLevel/isPlatformProduct
Lombok génère isTopLevel() pour un champ "boolean is ToopLevel" et Jackson raye le préfixe 'is', donc le point d'extrémité vivant était en train de sérialiser l...
Déclarer explicitement les apparieurs de sécurité afin que le service puisse commencer
Le service n'a pas été déployé depuis 2026-07-03; chaque gousse a depuis volé en panne avant le chargement du contexte: Cette méthode ne peut pas décider si ...
Harden the kubectl téléchargement contre la sortie floconneuse [skip ci
dl.k8s.io sur la sortie du coureur chute par intermittence au moyen de transferts: curl: (56) OpenSSL SSL-read: déchiffrement raté ou mauvais enregistrement m...
Sétérialiser les ids longs en tant que cordes pour arrêter la perte de précision org-id
Les ids d'org sont des valeurs CockroachDB uniques-rowid() qui dépassent JS MAX-SAFE-INTEGER. BillingService était en train de les sérier en tant que JSON brut ...
L'abonnement payant clive l'expiration du délai d'essai (le paiement remplace l'essai)
Inscrire les dépôts de signes électroniques pour la soumission du fève-cul du compteur
EsignMeterSubmissionService a besoin d'EsignUsageRecordRepository, mais EnableJpaRepositories n'a pas scanné com.kamo.z.shared.esign.repos, donc le contexte n'a...
Prix d'insertion à dos avec un compteur de facturation
Stripe (no 2025-03-31.basil) rejette l'utilisation de l'ancien type d'agrégateur modèle mesuré (les «prix mesurés doivent être supportés par des compteurs»), le...
Ajouter JsonProperty aux champs DTO booléens préfixés
Lombok génère isXxx() is-getters pour les champs booléens nommés isXxx. Jackson déshabille le premier 'is' des is-getters et les setite comme 'xxx' plutôt que '...
Inclure des comptes de ciblage d'abonnement dans la liste d'orgs
listForOrg retourne désormais également des comptes dont les abonnements ciblent rog demandé - pas seulement des comptes qui lui sont directement détenus. Dans ...
Utiliser - getter primitif
isOrganizationOwner est un booléen primitif sur TeamMember, donc le Lombok- l'accesseur est l'OrganisationOwner() ne pas getIsOrganizationOwner(). Les correctio...
Expose l'abonnement commercial sur GET/abonnements/courant
Lorsqu'il n'existe pas de rangée de rétroviseur Stripe, résoudre le commerce actif de l'ordre AbonnementsRecord (par ex. Subventions du COMP), y compris paiemen...
Comme ce que tu vois expédier ?
Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.