One release lesson from a benefits/membership platform I built: engineering green is not the same as launch-ready.
The stack spans customer, merchant and admin Flutter apps, a web admin surface, Firebase Auth, Firestore and Cloud Functions. The release process is intentionally split into independent gates for technical source health, ownership/evidence, mobile release configuration, production-data provenance, distribution territory and live launch evidence. External payment, messaging and map integrations fail closed until the required production credentials and commercial-rights evidence exist.
That separation matters in SaaS rescue work. A passing build does not prove runtime configuration, data provenance, provider readiness or launch authority. I verify those layers separately before calling a release done.
Which release gate has caught the most expensive issue for you?