Roster

San Francisco Has Never Been Over The Roster Limit. The 91st Man Has A Name And An Exemption.

The 49ers signed Khalil Herbert and Titus Leo on Sunday, waived Eli Apple, waived/injured Mikail Kamara, and worked out three more edge rushers. This beat has counted 91 bodies against a 90-man ceiling for three days and said twice it could not resolve the last one. The league resolved it in April.

SK
Sam KezarAug 2, 20265 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
Illustration: a shelf packed edge to edge with identical plain helmets, and one more helmet on the floor beneath it with nowhere to go.

Isaac Alarcon is the 67 in the offensive line group on the 49ers' roster page, he is 28, he went to Tecnologico de Monterrey, and he has never played a regular-season down. He is also the reason this beat has printed a number with a hole in it for a week.

The NFL granted San Francisco a roster exemption for Alarcon on April 28. Aaron Wilson reported it; Niners Wire carried it the same day. The exemption is the International Player Pathway kind and its effect is stated plainly: Alarcon does not count toward the club's 90-man offseason roster, and he starts counting only when the roster is cut to 53.

So the count is 90 against a limit of 90. Not 91 against 90.

This site has published the raw number three times and hedged it correctly once. The tracker column of July 30 laid out both available readings, said which exemption Alarcon holds "has never been established here," and concluded zero open roster spots under either. That answer was right and survives untouched. The other two are the ones that need saying: a July 31 piece put "91 players under a limit of 90" in a deck and a body paragraph, and a second July 31 piece went further and called it "one body more than the rules allow." The club has not been over the limit at any point this camp, and it has not carried a body the rules do not allow. It has been sitting precisely on the ceiling, which is a different fact with the same consequence and a better explanation attached.

What sitting on the limit does to a Sunday#

It means every arrival is paid for by name, and Sunday is the cleanest demonstration camp has produced.

San Francisco announced four moves at 1:25 p.m.: running back Khalil Herbert and defensive lineman Titus Leo signed to one-year deals, cornerback Eli Apple waived, defensive lineman Mikail Kamara waived/injured. Two in, two out, net zero, which is the only arithmetic available to a club with no open spots and is now the shape of ten transactions across three days.

The two positions were chosen by Saturday rather than by the front office. The 49ers practised Saturday morning and lost bodies out of exactly two rooms. Kamara left on a cart with a knee. Keion White did not finish with an adductor issue and Romello Height sat with an elbow, which thinned an edge group already missing Mykel Williams to the physically-unable-to-perform list. In the backfield, Jordan James has fractured ribs and Kaelon Black started practice and did not finish it, the latter reported by Nick Wagoner at ESPN and absent from other lists filed the same afternoon.

Sunday the club signed a running back and a defensive lineman.

Herbert has a job attached to him#

Herbert is 28. Chicago took him in the sixth round, 217th overall, in 2021, and the club's release runs the career without decoration: 63 games and 13 starts across the Bears, the Bengals and the Jets, 416 carries for 1,957 yards and nine touchdowns, 54 receptions for 316 yards and two more. His 2025 was seven games in New York, 16 carries, 52 yards.

The room he joins, counted off the club's page Sunday afternoon, is McCaffrey, James, Black, Patrick Taylor Jr. and Sincere McCormick, with Kyle Juszczyk at fullback and Isaac Guerendo on PUP. Herbert is the sixth back on a roster that will keep four, arriving on day eight, at a position where the man directly above him has broken ribs and the man below him walked off Saturday's practice for a reason nobody has published.

Leo is not the last defensive lineman#

Leo is 26, a sixth-round pick of Indianapolis in 2023, 211th overall out of Wagner. Four career games, one tackle, one pass defensed, five teams in three years, and a 2025 that consisted of Philadelphia's practice squad from October 15 to December 30. He is the fourth defensive lineman San Francisco has signed since July 26, after Kevin Givens that day and Quinton Bell and K.J. Henry on the 29th.

He is also not the end of it. The club worked out three edge rushers Sunday, all three off the league transaction wire and all three reported by Marc Adams at 49ers Webzone: Andre Carter and Xavier Thomas in a post filed at 12:37 p.m., Ogbonnia Okoronkwo in a second one at 1:00. Adams is the only place any of it has appeared. A club that signs a defensive lineman at 1:25 and has worked out three more edge rushers the same day is telling you the room is not fixed. The line has been this roster's churn engine since the first week of camp, and Saturday accelerated it rather than starting it.

Apple came out of the one room that did not break#

The corner group lost nobody Saturday. Apple came off it anyway, on a Reserve/Future deal he signed January 20, because two signings need two spots and Kamara's was only one of them. That is what zero open spots buys: a healthy player at a healthy position loses a job because a defensive lineman got hurt at a different one.

Waiving Kamara with an injury designation is procedure, not commentary. He was carted off, the club named a knee and has offered nothing past the body part, and this piece supplies no timeline because nobody has reported one.

The club's own tables are a day behind#

Counted table by table in a browser at 3:01 p.m. Sunday, the roster page read 88 active, three on active/PUP, two on reserve/injured and one on reserve/left squad. Apple and Kamara were still in the active table. Neither Herbert nor Leo appeared anywhere. The transaction log still ended on August 1.

Two things fall out of that read. The first is the count above: 88 plus three is 91 names, less Alarcon's exemption, is 90. The second is smaller and worth keeping: the PUP list is down to Guerendo, George Kittle and Mykel Williams, which means Alfred Collins has come off it and is in the active group at 95. Camp opened with four men there.

Anybody counting this roster off the club's own tables on a given afternoon is counting yesterday. The release runs ahead of both.


Sources. The 49ers' official release, August 2, 1:25 p.m., for all four transactions and for the Herbert and Leo biographies and career figures. The club's roster page and transaction log, counted table by table in a browser at 3:01 p.m. the same afternoon. Aaron Wilson's report of the Alarcon exemption via Oliver G. at Niners Wire, April 28, 2026, for the exemption and its treatment. Marc Adams, 49ers Webzone, August 2, 12:37 and 1:00 p.m., for the Okoronkwo, Carter and Thomas workouts, reported off the league transaction wire. Saturday's practice details come from this site's published camp notebook of August 1, which sources them to Nick Wagoner of ESPN, Jennifer Lee Chan of NBC Sports Bay Area and Tim Kawakami of the SF Standard. The July 30 tracker column referenced above is this site's own. This site had nobody at practice and nobody in the building.

Filed under 49ers

On the record

Called Shots →
Held upAug 2, 2026

On or before 2026-08-09, San Francisco signs at least one more defensive lineman or edge rusher who is not on its roster as of 2026-08-02. Method, fixed in advance: read the official transaction log at 49ers.com on 2026-08-09 and count signings at position DL or LB of any player absent from the roster page counted on 2026-08-02. Practice-squad signings do not count, because there is no practice squad until after the August 30 cutdown. A player re-signed after being waived counts.

San Francisco has signed four defensive linemen since July 26 (Kevin Givens on the 26th, Quinton Bell and K.J. Henry on the 29th, Titus Leo on August 2), worked out three edge rushers on August 2 alone (Ogbonnia Okoronkwo, Andre Carter, Xavier Thomas, per Marc Adams off the league transaction wire), and goes into this week with Mykel Williams on PUP, Keion White on an adductor, Romello Height on an elbow and Mikail Kamara waived. The honest case against my own call is that Leo IS the answer to Kamara and the workouts were due diligence the club runs every week; three workouts is also a small number to hang a signing on, and clubs sitting exactly on the 90-man limit have to waive somebody healthy to sign anybody, which is a real brake and cost Eli Apple his job on Sunday. I am calling it anyway because the pattern is four signings in eight days at one position group and the group got thinner, not deeper, over the weekend.

Latest on the 49ers

The whole beat →
The 49ers ran Las Vegas out of its plan before they took the ball away
49ers Deep Dive

The 49ers ran Las Vegas out of its plan before they took the ball away

San Francisco beat Las Vegas 38-17 on Sunday and is 7-1. The five second-half takeaways will be remembered, but the game was settled earlier. The 49ers' first three drives went 37 plays and 242 yards, took 19 minutes and 23 seconds and ended in touchdowns, and San Francisco ran 25 times for 125 yards before halftime. Las Vegas had the ball for 71 seconds in the first 13 minutes. Trailing by 11 at the half, the Raiders ran six times and threw 24 times after it, and Klint Kubiak said that being in position to throw on every down produces interceptions. The pass rush did not cause the turnovers: Cousins was hit twice on eight first-half throws and four times on 24 second-half throws. Two takeaways were punched out of receivers' hands, and one came off a fumbled exchange. The second half also showed a cost. San Francisco threw an interception, was stopped on fourth-and-1 at its own 40, and allowed 222 kickoff-return yards, and Las Vegas started three drives in 49ers territory. The game moved San Francisco's season turnover margin from minus-3 to plus-1. Las Vegas has now allowed 30 or more points six weeks running, so Dallas on Sunday is the first test of whether the formula holds.

Sam KezarNov 10, 20266 min read
The 49ers trade a sixth-round pick for Keenan Allen
49ers Notebook

The 49ers trade a sixth-round pick for Keenan Allen

San Francisco acquired wide receiver Keenan Allen from Indianapolis on Tuesday, deadline day, for a 2027 sixth-round pick, the league transaction wire shows. It is the second trade between the clubs in three weeks, after DeForest Buckner on Oct. 27. Allen, 34, played at Cal and is a six-time Pro Bowler with 1,095 career catches, eighth all time. He had 40 catches for 351 yards and one touchdown in eight games for the Colts, their team lead. The club placed Gracen Halton on injured reserve with a fractured ankle the same afternoon, and its roster page showed 52 on the active roster before Allen was added. Allen joins a receiver room missing Mike Evans and Deebo Samuel Sr. last Sunday. He caught four passes for 26 yards against Dallas in Week 9, and the 49ers play at Dallas on Sunday.

Sam KezarNov 10, 20263 min read
Five takeaways in one half, and the 49ers never sacked Kirk Cousins
Takeaways

Five takeaways in one half, and the 49ers never sacked Kirk Cousins

San Francisco beat Las Vegas 38-17 at Levi's Stadium on Sunday and is 7-1. The 49ers scored touchdowns on their first three possessions, did not punt, and ran 43 times for 190 yards. Las Vegas turned the ball over on five of its six second-half possessions: Jaden Dugger's 35-yard interception return on the first play of the half, two forced fumbles, and interceptions by Renardo Green and Malik Mustapha. The official game book credits San Francisco with no sacks and six quarterback hits, two of them on the plays Green and Mustapha intercepted. Nick Bosa played 39 of 50 defensive snaps in his first game since Sept. 20, and DeForest Buckner played 34. Jordan Watkins caught all four of his targets for 86 yards and his first NFL touchdown. Christian McCaffrey's 12-yard catch set the Super Bowl-era record for touchdown catches by a running back and was Brock Purdy's 100th touchdown pass. Gracen Halton broke his ankle and is out for the season, Shanahan said; Green (back) and Deommodore Lenoir (foot) did not return.

Sam KezarNov 9, 20265 min read

Earlier on the 49ers

After Pineiro's field goal, Washington ran 40 plays and the 49ers ran nine
Takeaways

After Pineiro's field goal, Washington ran 40 plays and the 49ers ran nine

San Francisco beat Washington 23-17 at Levi's Stadium on Monday night and is 6-0 for the first time since 2019. It led 23-3 with 5:56 left in the third quarter, and from there the offense ran nine plays on three possessions without a first down while Washington ran 40 and scored twice. Four of Washington's first downs came by penalty, two of them wiping out a third-down incompletion and a fourth-down sack. Malik Mustapha broke up a fourth-and-3 pass at the 17 with two minutes left, and Keion White and Romello Height sacked Jayden Daniels on the final play. Mike Evans caught three passes for 94 yards and left with 1:10 in the first half with the Achilles soreness that kept him out of practice all week. Brock Purdy passed 1,500 career attempts on the opening drive, and the club's notes list him first in career passer rating. Jaden Dugger led the team with 11 tackles. Luke Gifford and Upton Stout also left and did not return.

Sam KezarOct 20, 20265 min read
The 49ers kept Bosa off injured reserve and put Demarcus Robinson there instead
49ers Notebook

The 49ers kept Bosa off injured reserve and put Demarcus Robinson there instead

The 49ers kept Nick Bosa on the 53-man roster on Saturday and placed receiver Demarcus Robinson on injured reserve. Defensive lineman Viliami Fehoko Jr. was promoted from the practice squad into Robinson's spot, and defensive linemen Kevin Givens and Sebastian Valdez were elevated for Sunday's game against Arizona. Matt Judon was among four free agents who worked out for the club. Brandin Cooks was not elevated, and Jordan Watkins is expected to make his season debut.

Sam KezarSep 26, 20263 min read
Ten Days To The Cutdown, And The 49ers Expect To Play A Number Of Starters
Preseason Preview

Ten Days To The Cutdown, And The 49ers Expect To Play A Number Of Starters

The roster goes to 53 on August 30, ten days after Thursday's game at the Chargers, and one preseason game follows this one. Twelve players are named here with the jersey numbers to find them by, read off the club's official roster page Thursday morning: the left guard rotation, the vacant tenth offensive line spot, a rookie back Shanahan said will most likely play, and a defensive line that was missing three men on Tuesday.

Sam KezarAug 20, 20264 min read