I Shipped a Fix. The PR Got Closed. And That's Exactly How Open Source Works Sometimes.
Recently, I worked on an open-source contribution where I:
- Fixed a real production issue
- Added unit tests
- Handled edge cases
- Opened a clean, production-safe PR
…and it still got closed.
Not because the code was wrong.
But because product + growth decisions beat engineering.
That's open source in real companies.
PR for context: trigger.dev#3014
The Problem
The issue looked simple:
- A user deletes their last organisation
- …but they still receive marketing emails.
Root cause: Their contact remains in Loops (the marketing platform).
From an engineering perspective, the solution felt obvious: if a user has zero organisations, remove them from Loops.
So I implemented exactly that:
- Added
deleteContact()toLoopsClient - Wired it into the org deletion flow
- Guarded it so it only runs when the last org is deleted
- Treated
404as success (contact already gone) - Added unit tests
- Covered edge cases
Clean. Deterministic. Production-safe.
The Result?
PR closed.
Not due to code quality. The maintainer explained:
- Deleting an organisation is not the same as deleting a user.
- Marketing should be tied to the user, not the organisation.
- They don't yet have a full automated account deletion flow.
And then the most startup sentence ever:
We currently do this manually when users contact us.
What Actually Happened
I assumed: System exit → no more emails.
They're operating on: Org deleted ≠ user deleted ≠ lead lost.
This wasn't an engineering disagreement. It was a product + growth decision. Classic SaaS.
Important Distinction
This wasn't a bad PR. This was a product decision override.
The code was fine. Tests were there. Edge cases handled.
But the funnel mattered more.
The Real Win
Even without a merge, I gained:
- Experience navigating a production codebase
- External API integration
- Testable client abstraction
- Edge-case driven design
- Maintainer feedback
- A glimpse into startup product reality
That's value.
Takeaway
Open source isn't just about code.
Sometimes you learn:
- How GDPR gets postponed
- How growth beats engineering
- How a "bug" can be intentional behaviour
And that's part of the journey.
TL;DR: I fixed the bug. The PR was closed. It was a product call. Still 100% worth it.