SPOILER ALERT: This story contains details of tonight’s Shades of Blue series finale.

“You’ve got all your tomorrows lined up.” So says Ray Liotta’s on-the-run NYPD Lt. Matt Wozniak, unintentionally ironically reassuring his Jennifer Lopez-played protégée Detective Harlee Santos tonight on the Season 3 and series finale of NBC’s Shades of Blue.

While a Liotta-led spinoff for the low-rated, cliché-filled corrupt cop drama could feasibly be launched off the close of Shades, the fact is that unless World of Dance judge JLo is looking to cross over to the next season of Netflix’s Orange Is the New Black, the NBC show’s tomorrows will thankfully be no more.

Oddly, with months to finesse things since the end of the series was announced in April and the “By Virtue Fall” episode that just aired, Shades of Blue failed the clutch test. Full of courtroom drama but not actually in a courtroom, plus little drama and with declarations of a “slippery slope” and the “ugly truth,” the show threw everything and the police commission in the narrative blender in the hopes of redemption, literally and figuratively.

Yet, instead of bringing Santos’ story to a worthy conclusion, the Adi Hasak-created series fumbled through about five different seemingly slapped together endings as one dangling plotline after another was rolled on and off stage in two blinks of any eye. In an elongated twist that you could see coming for miles (and far too typical for Big 4 shows nowadays), Lopez’s conflicted character turned herself in to start “facing the music” after evading Internal Affairs, drug lords and her own conscience for three seasons.

In such a frenzy of inconceivable-ness, including the strangling of the vilely overwrought, once feared and now warp-speed tried-and-convicted Intelligence Unit chief Jordan Ramsay (Bruce McGill) by Woz in the prison bus cage, it appears Jenny from the Block has already deleted Shades from her brand browser. Clearly skilled onscreen as 1998’s Out of Sight and more recently 2015’s Lila & Eve display, Lopez rarely brought that A-game to Shades, to her and the network’s own detriment.

Despite Shades’ long-apparent limitations, perhaps the most galling part of the series finale is that the show already had a pretty respectable ending in last week’s penultimate “Goodnight, Sweet Prince” episode.

Adding a few strategic edits to put paid to other characters like Drea de Matteo’s once and future Detective Tess Nazario, the motel room killing by Santos of the dangerously obsessive ex-FBI Special Agent Robert Stahl (Warren Kole) would have been a satisfactory and even heart-pumping finale. Yet, with a 10-episode final season order and the embrace of genre tropes galore, Shades had to drag it out to make it over the contractually obligated finish line.

So, having hit its stride last week, the best Shades could subject us to Sunday besides JLo’s self-determined imprisonment was nervous glances and slow-motion walks before a commission pulled together to expose the rot in certain sections of New York’s Finest and a lame on-the-lam, glued-together aside of Nick Wechsler’s Detective Cole jumping on the ferry to a new life instead of spilling the beans. Add to that the Lopez voice-over of a letter of self analysis, Jeffrey’s Cristina moving in with Woz and his wife Linda (Margaret Colin) while her mother serves hard time, and the rehabilitated cop receiving a final ghostly cameo and peck on the cheek by Liotta’s actor’s real-life daughter Karsen as the long-dead Anna Kate Wozniak.

The truth is, with the exception of the conclusions of 1990’s Newhart and 2005’s Six Feet Under, series finales are almost always harried and unfulfilling. The end of Shades of Blue was sadly and expectedly well within that tradition. The worst part is, as last week’s episode revealed, it really didn’t have to be that way — promises of tomorrows and more.