The Upgrade Before Christmas

A holiday poem about a partially-finished Heroku stack upgrade.

It's the week before Christmas, and all through Viget South,

Not a person is stirring (the pandemic kicked us out).

But in everyone's home, there's a desk, there's a chair,

And so work continues, even though we're not there.


Our internal apps are just humming along,

While the dev team builds Beacon, which is still going strong.

Then one day comes an email, innocent as can be:

SendGrid says, "No more passwords! Use an API key."


"No problem!" I think (little do I know).

"We'll just update our apps. Come on, Elom, let's go!"

ShorterOrder seems like a good place to start,

So let's open it up and fix this one little part.


But on staging, the SendGrid account has been closed,

says a message that's flashing like a reindeer's red nose.

"Not to worry," I think, "This shouldn't cause strife."

Except that cedar-14 is past its End of Life.


Is it really a problem that 14 has been killed?

Yes. EOL means you can't deploy a new build.

Heroku says to try 20 - this Ubuntu is great.

So I give it a shot with 'heroku create'.


But Ruby 2.4 is too old for this stack,

We must use 16 or 18 for running this app.

So we try again with heroku-16...

Look at that bundle! So successful. So clean.


Let's check on Heroku - a successful deploy!

After several hours, this is cause for much joy.

But let's open the app before we hit the eggnog,

An error pops up with a message, "Check your logs."


So we tail the logs and find secrets therein:

Heroku can't start the server or load the command, 'thin.'

While an old application might seem like it's okay,

Sooner or later, it will need an upgrade.


I'm sorry to say, that's as far as I got.

So if you thought that this tale was over - it's not.

I will get ShorterOrder staging back up,

with some version adjustments and a bit of good luck.


But very soon there will be some more things to do:

You see, heroku-16 is near EOL too.

But for now, let's keep that thought out of sight.

We'll do upgrades next year, do them all, do them right.

Happy holidays from the Viget dev team!

Annie Kiley

Annie is a Senior Developer in our Durham, NC office. She writes backend code for clients like the Wildlife Conservation Society.

More articles by Annie

Sign up for The Viget Newsletter

Nobody likes popups, so we waited until now to recommend our newsletter, a curated periodical featuring thoughts, opinions, and tools for building a better digital world. Read the current issue.