This one will hurt for a while.
For the second year in a row, Leinster's European dream has been ended by La Rochelle and Ronan O'Gara.
For the second year in a row, they were big favourites, and for the second year in a row, they were beaten through sheer muscle.
Leo Cullen's side were second best for most of the 80 minutes at Stade Velodrome in Marseille, but still had the game in their hands. Aside from a brief period in the first half, they led for the vast majority of this final, right up until 78 minutes and 50 seconds, when the sniping run of scrum-half Arthur Retiere handed the French side their first ever major trophy.
Ronan O'Gara now joins Leo Cullen and Toulouse boss Ugo Mola as the only men to win this trophy as a player and a coach, and his side should have won by more, hindered by dreadful discipline, which handed Leinster all 21 of their points, with six of the seven penalties being directly in front of the posts.
But every time they switched their brains on, they made ground. Will Skelton threw himself about for the full 80, proving once again to be the arch-nemesis of Leinster.
Even though Leinster failed to fire any shots at the tryline, they led 18-10 early in the second half, and 21-17 with a quarter of an hour to play and a man advantage after Thomas Lavault's yellow card.
But under the roasting Marseille sun, they couldn't get to the final bell, as another season passes by with Champions Cup regret.
Leinster eased into the game nicely. Pinning Le Rochelle back into their half, they forced a shallow clearance kick, and won consecutive penalties in the next two minutes, Sexton calling for the tee on the second of those, for an early shot at goal.
It was a nice settler for the captain, 30 metres out and straight in front of the posts, and he put the chorus of La Rochelle boos out of his mind to slot it straight between the posts.
The French discipline was awful in the early stages. By the seventh minute they'd conceded four penalties, as well as a further advantage which Leinster ran from deep, with Keenan and Ringrose combining to bring them into the 22. It led to the fourth of those infringements, which Sexton once again tapped over to make it 6-0.
The La Rochelle fans had greeted Wayne Barnes' whistle with howls of derision, but with two minutes they were sent into delirium by their winger Raymond Rhule, as he ghosted inside Keenan to score the game's first try.
Playing with advantage, the French moved back to the blindside, with Dillyn Leyds getting to the outside of Jimmy O'Brien, before offloading back inside to Rhule who pierced the gap to run in and score.
With the clock hitting 10 minutes, Ihaia West's conversion split the posts, and La Rochelle led 7-6.
On the quarter-hour mark came another Leinster setback, Rónan Kelleher departing due to injury, with Dan Sheehan summoned from the bench, while their scrum was walked backwards, as they conceded a penalty which La Rochelle failed to convert into points.
Their saving grace was La Rochelle's lack of discipline. Wayne Barnes was keeping a close eye on the offside line, and twice in the space of a minute he caught O'Gara's side creeping up early, allowing Sexton hit his third shot at goal on 20 minutes, to send Leinster back in front 9-7.
For a moment, it seemed like Leinster has steadied after their wobble, but they were struggling to deal with the power of Uini Atonio, Will Skelton and Gregory Alldritt, who were carrying hard and direct.
O'Brien had to have his wits about him to stop Rhule from scoring a potential second try, after he once again had been put through by Leyds. Leinster escaped but were soon defending their 22 again after hooker Pierre Bourgarit broke down the blindside from a lineout attack which gave them a penalty five metres out.
Having dominated the scrum so far, La Rochelle opted to pack down and try march Leinster back. For a while, it looked like it would be the game-winning, or a game-losing decision.
The French pack started moving forward before the scrum collapsed in a heap, and Barnes stuck his arm out to give the advantage, before instantly turning the decision over, his assistant Christophe Ridley telling him that Dany Priso had dragged the scrum down on the far side. Penalty Leinster.
Within seconds, Leinster were within five metres of the La Rochelle tryline after O'Brien's kick down the touchline was chased by Sheehan, Van der Flier and Gibson-Park, who took advantage of Brice Dulin's indecision to bundle him over his own line.
With the clock in the red, La Rochelle followed it up by conceding a penalty under the posts, Sexton pointing straight at the sticks, as he kicked his side into a 12-7 half time lead, having been dominated for 30 of the first 40 minutes.
While the sun had moved in behind the clouds of the Velodrome roof, it was still 27C in Marseille by the time the second half kicked off. The hope for Leinster would be that Atonio and Skelton didn't have much left in their tanks. Atonio had some. Skelton had a lot.
Within 30 seconds of the restart, Leinster handed back those three points they snatched before the break, penalised for illegally sealing off a ruck beneath their own posts, allowing West the easiest of kicks to make it 12-10.
Despite winning that early penalty, O'Gara's side had picked up where they left off in terms of discipline, conceding two more penalties across the next five minutes. With the first, Leinster worked their way up the pitch, pinning their opponents back with clever kicking and chasing. With the second, Sexton tapped over his fifth kick of the day, nudging them 15-10 ahead.
It was a sharper, more focused Leinster in the opening 10 minutes of the second half, and when Henshaw broke the line in midfield with a neat step, it forced yet another penalty, the sixth they had conceded directly in front of the posts. Again, it was a routine shot at goal for Sexton, as they moved 18-10 in front, the first two-score lead of the game.
The momentum never knew which way to swing though. When they could go through multiple phases without conceding penalties, La Rochelle always looked dangerous, and after reacting fastest to a drop goal attempt by West, Sexton lacked clarity in his thoughts, and his indecision led to Keenan getting turned over as they conceded a penalty in their 22.
Sending it to the corner, the yellow jerseys went straight for the maul, cutting through Leinster like cheese wire, as Bourgarit touched down at the back to get the game's second try.
When West nailed the conversion it was now 18-17 in Leinster's favour, giving Ross Byrne just under 20 minutes to try steer his side home, as he ran on to replace Sexton.
But every time the French side took a step forward, they'd shoot themselves in the foot. Barely two minutes after his team scored the try to potentially change the game, second row Thomas Lavault was caught for the most brainless, needless trip on Gibson-Park. It was arguably worth a yellow card on its own, but after an hour of indiscipline the sin-binning was inevitable, as they were reduced to 14 men.
It gave Leinster a penalty on the edge of the 22, to the left of the posts, Byrne calmly nudged Leinster into a four point lead, 21-17 with a quarter of an hour to go.
But even with a man advantage, Leinster were struggling to deal with the La Rochelle physicality. Many wondered it Skelton would have the gas for 40 minutes, but he was still out their winning collisions in the final 10.
La Rochelle's attack and Leinster's defence were becoming more and more desperate in equal measure, as the leaders lost their discipline. Penalties were followed by more penalties, La Rochelle setting up camp on the tryline. It wasn't sophisticated; scrum, pick and go. But it was enough.
On 78 minutes and 50 seconds, they got their try. Initially, it looked like Arthur Retiere, the sub scrum-half, had spilled the ball after slipping near the line. He hadn't.
West didn't even need to make the conversion, but he did it anyway, striking the ball between the posts right on 80:00, as the beaten Leinster players looked rocked to their core.
Leinster: Hugo Keenan; Jimmy O'Brien, Garry Ringrose, Robbie Henshaw, James Lowe; Johnny Sexton (capt), Jamison Gibson Park; Andrew Porter, Rónan Kelleher, Tadhg Furlong, Ross Molony, James Ryan, Caelan Doris, Josh van der Flier, Jack Conan.
Replacements: Dan Sheehan, Cian Healy, Michael Ala'alatoa, Joe McCarthy, Rhys Ruddock, Luke McGrath, Ross Byrne, Ciaran Frawley.
La Rochelle: Brice Dulin; Dillyn Leyds, Jérémy Sinzelle, Jonathan Danty, Raymond Rhule; Ihaia West, Thomas Berjon; Dany Priso, Pierre Bourgarit, Uini Atonio; Thomas Lavault, Will Skelton; Wiaan Liebenberg, Matthias Haddad, Grégory Alldritt (capt).
Replacements: Facundo Bosch, Reda Wardi, Joel Sclavi, Romain Sazy, Remi Bourdeau, Arthur Retiere, Levani Botia, Jules Favre.
Referee: Wayne Barnes (RFU)