The Jets blew a 16-point second-half lead on Sunday and lost 17-16 to the Bills to open the season. Here are some thoughts and observations from the game:

1. If you go through the major culprits in this loss, there are not many surprises. There were glaring holes on this team, and those showed up in a big way on Sunday. These are holes that have been harped on all summer and some of them have been downplayed by the coaches. They shouldn’t have been. Here are those spots we have talked about plenty and were problems Sunday:

Offensive line – Sam Darnold did not play well. However, he had people in his face all day. The line played terribly and looked like a group that had not played together at all in the preseason. They were slow to pick up blitzes and pass off defenders. The communication looked poor. Darnold was sacked four times and hit nine times. The Jets better hope center Ryan Kalil is just rusty. He did not play well.

Cornerbacks – Trumaine Johnson and Darryl Roberts gave up plenty of big plays. Johnson was giving a huge cushion to John Brown, who exploited it on several plays. Roberts gave up the game-winning touchdown even after committing pass interference on the play. Roberts also had two penalties, one that wiped out an interception by Marcus Maye.

Kicker – The Jets pretended this week like they had full confidence in Kaare Vedvik, whom they claimed off waivers last weekend after he bombed in Minnesota. Well, a missed extra point and missed field goal has them wondering who will kick for them next Monday night against the Browns. Expect a new kicker.

Pass rush – The Jets got to Josh Allen early in the game and then the rush vanished. They managed just one sack in the game and let Allen extend several plays.

These holes could sink the Jets’ season. It’s tough to fix these during the season, but general manager Joe Douglas must continue to search for answers.

2. The two touchdown drives in the fourth quarter were what sunk the Jets, but a third-quarter drive deserves a closer look, too, when analyzing how the Jets blew this game.

Up 16-0, the Jets had the Bills stopped after a third-and-10 incompletion by Allen. But Henry Anderson was flagged for roughing the passer. It was a good call. Anderson took about four steps after Allen released the ball and then hit him. That extended the drive.

Later in the drive, Maye dropped an interception at the goal line. The Bills then kicked a field goal and their comeback was underway.

The Anderson penalty and Maye drop loom large when looking back at this game that the Jets should have won.

3. I was surprised how conservative Adam Gase was with his offense. The Jets gained 3.4 yards per pass play and Darnold averaged 4.3 yards per attempt. His longest completion was for 19 yards.

The only long passes seemed to come late in the game when the Jets were down: Darnold missed Robby Anderson twice and Quincy Enunwa once. Gase was particularly conservative on third downs with a lot of short throws. Some of them worked because of Jamison Crowder and Le’Veon Bell making things happen after the catch, but it was odd to see the Jets not take many shots downfield.

Gase indicated the Bills are particularly tough to go deep against. It looks as if Bills coach Sean McDermott is a bad matchup for Gase, who is now 1-4 against McDermott’s Bills team going back to when Gase was in Miami. Gase’s teams have averaged just 17.2 points per game in those losses. Sunday was the third time that Gase’s team scored just 16 points against McDermott’s Bills.

4. I’m no one to throw much love to kickers and punters, but Lachlan Edwards did an outstanding job Sunday. Edwards had five punts inside the 20, and two of those led directly to points. The Bills were at their own 12 after an Edwards punt when Allen threw an interception to C.J. Mosley that he returned for a touchdown. In the third quarter, Edwards pinned the Bills down on their own 2. The Jets defense stuffed Frank Gore for a safety.

Edwards contributed to eight points with his punting. That’s a good day.

Revealing stat: The Jets averaged 3.4 yards per play in the game. They had no plays longer than 19 yards other than one that got extended because of penalty.

Surprising snap count: Ty Montgomery only played five snaps. He had two carries in the game and did not catch a pass. That was puzzling after seeing Montgomery play so well in training camp and in the preseason. I expected him to have a big role, but he had no role in this game.

Game ball: Mosley was a beast in his Jets debut. He had five tackles, an interception returned for a touchdown, a fumble recovery and two passes defensed. The game totally flipped when he left with a groin injury. In this game, Mosley looked worth the big contract the Jets handed him this offseason.