Camp Battles

The Safety Battle Everybody Previewed Is Not The One Being Held

Ji'Ayir Brown was supposed to be defending a job. Through three practices he has taken every first-team free safety rep and nobody has contested one of them. The competition is the spot beside him, between Malik Mustapha and Marques Sigle, and one of those two has a hamstring.

SK
Sam KezarJul 30, 20264 min read
Every call on this site goes on a public ledger and gets graded. The misses stay up.
The Safety Battle Everybody Previewed Is Not The One Being Held

The second installment of this series was supposed to be a rookie-pushes-starter story. Nick Wagoner of ESPN previewed the safety competition on July 23 by reporting that Raheem Morris, in his first camp as defensive coordinator, would look at every possible combination, and that Ji'Ayir Brown and Malik Mustapha would get the first look, with Marques Sigle having taken spring reps with the top group and free-agent addition Ashtyn Davis in the mix.

Three practices in, one of those four names has taken every first-team rep at free safety and none of the other three has taken one. Wagoner has Brown running all of them, and Brown intercepted Brock Purdy in Monday's session while he was doing it. Kyle Madson of Niners Wire, working from Wagoner's posts, put the point plainly: the rotation is happening at the other safety spot.

So the battle is not Brown against a challenger. It is the job next to Brown, and the two men in it are Mustapha and Sigle.

Except that for the last two practices there has been only one man in it#

Mustapha strained a hamstring on Monday and did not practice Wednesday. He is on the club's own Day 3 non-participant list, and Sigle worked alongside Brown with the first team in his place, per Sam Tafur and Matt Barrows of The Athletic.

That is the fact this primer has to lead with rather than bury, because it disqualifies most of what a reader would otherwise take from the week. Reps banked in the other man's absence are the weakest evidence a camp produces. Sigle has had one uncontested practice at the position, and one uncontested practice is a schedule rather than a result.

None of which diminishes what he has actually done. Sigle intercepted Mac Jones on the opening day of camp, per Wagoner. He was the 160th pick of the 2025 draft, a fifth-rounder out of Kansas State by way of North Dakota State, 5-foot-11 and 199 pounds with a 4.37 forty at the combine, and he started every game he played across two seasons for the Wildcats. A real candidate, in other words, who has not yet had the chance to beat anybody.

Mustapha's case is the one the reps are not currently making for him. Madson has him at 22 starts in 28 career games, which is one outlet's figure and is not corroborated elsewhere; the 28 games are confirmed on the league's own numbers, 16 in 2024 and 12 in 2025. Brown's is comparable and better documented: a starter in 26 of 34 games over the last two seasons.

The fact underneath all of it, stated once and left alone#

Brown is playing out the final year of his rookie contract. He is due a base salary of $3,624,000 against a cap hit of $3,905,056, with a dead-cap figure of $231,056, and Wagoner has reported that the 49ers do not appear to be in a hurry to sign him long-term.

That is a fact about a contract, not a theory about a man's motivation. Nobody has reported a negotiation. What it does mean is that the player taking every first-team rep at the position is the one the team has made no commitment to beyond January, which is worth a reader knowing when the depth chart is read in September.

Where Davis and Neal actually are, because they are not here#

Both names come up whenever this position is discussed and neither belongs in this competition. Ashtyn Davis signed a one-year deal in June with minimal guarantees, six seasons and 84 games behind him with the Jets and Dolphins, 34 of them starts. Siran Neal is a long-established core special-teams producer who flexes between corner and safety. Their fight is for the fourth safety job at the bottom of the roster, which is a genuine competition and a separate one. Neither has been reported taking a first-team rep beside Brown.

What decides this, and the date it starts#

Nothing on the record so far was recorded in pads. Every rep in this piece was taken in shorts, which means a safety competition has so far been judged on coverage and ball skills and not at all on the half of the job that involves contact. The 49ers hold their first padded practice on Friday, July 31, per the club's own Day 3 recap. Thursday was the league-mandated off day, so nothing has happened on the field to overtake any of this.

That date is why this battle is genuinely open rather than rhetorically open. A downhill hitter and a coverage safety look identical in shorts.

The call#

Malik Mustapha, not Marques Sigle, lines up at safety alongside Ji'Ayir Brown with the first-team defense on the opening snap against the Rams in Melbourne on September 10.

The falsifier is exactly that snap: if Sigle is the one on the field with the ones and Mustapha is not, the call is wrong, regardless of what either does afterward.

Two things carry it. One is that Mustapha is the incumbent, with 22 starts to Sigle's zero. The other is a lesson this camp already taught, four days ago and at a different position: projections had a fourth-round rookie taking the open left guard job because that is what projections do, and then Connor Colby took every first-team rep on day one while Chris Foerster called him the incumbent and said nobody had done anything to beat him out. Against the call, and it is not nothing: hamstrings in July have a way of becoming August, and a man who cannot practice cannot hold a job he has not been given back.

Sam Kezar, July 30, resolving September 10.


Sources. Nick Wagoner, ESPN, on the July 23 camp preview, the first-team free safety reps, the Purdy interception, the Sigle interception on day one, and the absence of extension urgency; Kyle Madson, Niners Wire, for the analysis of the rotation and for the start counts, syndicated via Central Oregon Daily. Sam Tafur and Matt Barrows, The Athletic, July 29, on Mustapha's hamstring and Sigle's first-team work. The 49ers' own Day 3 recap, July 29, for the non-participant list and the Friday padded-practice date. Career games confirmed on NFL.com. Sigle's draft position, measurements and college record via the 49ers' own draft release, April 2025. Davis's contract and career figures via the club's June signing release. Brown's contract terms via Spotrac, read July 30. Grades for all five players are maintained on this site's 53-man tracker.

Filed under 49ers

More on Malik Mustapha

His page →
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
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
Without Bosa, the defense Shanahan hoped would survive is third in points allowed
49ers Notebook

Without Bosa, the defense Shanahan hoped would survive is third in points allowed

Kyle Shanahan said the injuries on his defensive line had him hoping to survive until the second half of the season. Through five games the 49ers have allowed 93 points, 18.6 a game, and only Minnesota and Kansas City have allowed fewer per game. Bosa is out Monday against Washington, Halton and Mykel Williams are questionable, Malik Mustapha starts again for Marques Sigle, and Brock Purdy is five attempts from qualifying for the career passer-rating list.

Sam KezarOct 18, 20264 min read

On the record

Called Shots →
MissedJul 30, 2026

Malik Mustapha, not Marques Sigle, lines up at safety alongside Ji'Ayir Brown with the 49ers' first-team defense on the opening defensive snap against the Los Angeles Rams on September 10, 2026. If Sigle is on the field with the first team on that snap and Mustapha is not, this call is wrong.

Filed off Camp Battles 2. The competition is the spot beside Brown rather than against him: Wagoner has Brown taking every first-team free safety rep through three practices, and the rotation is at the other safety spot. The call rests on two things. Mustapha is the incumbent, with 22 starts in 28 career games per Niners Wire against zero for Sigle, and this camp has already produced one incumbent-over-rookie result at left guard, where Connor Colby took every first-team rep on day one and Chris Foerster called him the incumbent. Against it: Mustapha strained a hamstring on Monday July 27 and missed Wednesday's practice, Sigle worked with the first team in his place, and every rep in the competition so far was taken in shorts with the first padded practice on Friday July 31. Single-part, no injury escape hatch, and the falsifier is named in the piece.

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
Gracen Halton needs ankle surgery, and both outside corners are day-to-day
49ers Notebook

Gracen Halton needs ankle surgery, and both outside corners are day-to-day

Kyle Shanahan said Monday that Gracen Halton dislocated and fractured his ankle, will have surgery this week and will go on injured reserve. Renardo Green (back) and Deommodore Lenoir (foot) are day-to-day before Sunday's game at Dallas. C.J. West's practice window opens Wednesday, Deebo Samuel could practice Wednesday, and Mike Evans is not expected to.

Sam KezarNov 9, 20263 min read

Earlier on the 49ers

Nick Bosa hurt his calf warming up, and four linemen will miss Arizona
49ers Notebook

Nick Bosa hurt his calf warming up, and four linemen will miss Arizona

Nick Bosa hurt his calf in individual warmups before Thursday's practice and is out against Arizona. Kyle Shanahan said he will miss a few weeks. Romello Height, James Thompson Jr. and Demarcus Robinson are also out, and Mike Evans is questionable after practicing on a limited basis Friday. With C.J. West on injured reserve, four of the nine defensive linemen who played against Miami will not play Sunday. The club expects to make its injured-reserve decisions on Saturday.

Sam KezarSep 26, 20263 min read
Aaron Donald Did Not Travel And Myles Garrett Did
49ers Pregame

Aaron Donald Did Not Travel And Myles Garrett Did

San Francisco plays Los Angeles at the Melbourne Cricket Ground on Thursday, 5:35 p.m. Pacific, on Netflix. Alfred Collins tore his patellar tendon at the second Melbourne practice and is out for the season, the only San Francisco player on the final Week 1 report carrying a game designation apart from James Thompson Jr., who is questionable with a hamstring. Nick Bosa and George Kittle carry no designation at all. On the Rams sheet Aaron Donald is out and did not travel, and Myles Garrett went from not practising to full participation and plays.

Sam KezarSep 10, 20264 min read
The +305 On Your Screen Is Not The Price
The market

The +305 On Your Screen Is Not The Price

Every 49ers futures price quoted this month carries the sportsbook's margin baked into it, and nobody removes it before printing. Here is how to remove it yourself, what it does to the 49ers number, and why the cheaper venue is the one most Bay Area readers have never opened.

Casey MontgomeryAug 7, 20267 min read