San Francisco promised a rare Fourth of July spectacle Saturday night: fireworks launched from the Golden Gate Bridge for the first time on Independence Day.
For many spectators, what they got instead was a letdown – a 15-minute show swallowed by fog, followed by gridlocked streets, overwhelmed transit and a long crawl out of the waterfront.
The display launched around 9:30 p.m., with fireworks fired from the Golden Gate Bridge towers and additional bursts from barges near Crissy Field and Pier 39. But from parts of the Presidio and other western vantage points, the bridge was nearly impossible to see.
Fireworks disappeared almost as soon as they launched, leaving only faint flashes inside a thick marine layer.
“Well, we tried,” one young couple said as they arrived at the National Cemetery Overlook, looked toward the obscured bridge and turned around.
Another attendee put it more bluntly: “You just have to imagine something amazing happening.”

Bursts of color surround the Golden Gate Bridge during Saturday night’s Fourth of July celebration, which was marred by fog. (Carlos Avila Gonzalez/S.F. Chronicle)
Visibility varied by location. Looking east toward the bay, conditions were clearer, and some spectators saw bursts of color through the haze. But around the bridge and parts of the Presidio, the fog was so thick that the show many had waited hours to see was largely hidden.
The celebration marked the first time Fourth of July fireworks were launched from the Golden Gate Bridge and only the third fireworks display from the span overall, following shows for the bridge’s 50th and 75th anniversaries.
That rarity helped draw huge crowds to San Francisco’s northern waterfront, Crissy Field, Marina Green, the Presidio, the Marin Headlands, rooftops, patios and other vantage points. Many spectators arrived hours early with folding chairs, blankets, coats and food to wait through the cold evening.

Fourth of July fireworks peek through the fog over the Golden Gate Bridge as San Francisco celebrates the nation’s 250th birthday. (Carlos Avila Gonzalez/S.F. Chronicle)
Hundreds of boats gathered beneath the bridge. On land, crowds packed hillsides and overlooks. Some people began leaving early once it became clear the fog was blocking the view.
The fireworks lasted about 15 minutes. The disruption lasted for hours.
The event created a major burden for transportation agencies, law enforcement and nearby neighborhoods.
The city did not immediately disclose the cost of the bridge fireworks display. The show required extensive public resources, including Golden Gate Bridge and Highway 101 closures, special Muni service, street restrictions and public safety staffing.

Saturday’s Golden Gate Bridge fireworks display was the span’s first on Independence Day and the third overall. (Florence Shen/S.F. Chronicle)
Traffic was bumper-to-bumper entering the Presidio before the show. Some drivers moved onto the wrong side of Lake Street while searching for parking. Park police were trying to clear cars parked on the Presidio Parkway, the 1.6-mile stretch of Highway 101 connecting San Francisco to the bridge.
The Golden Gate Bridge closed to all traffic for an hour starting at 9 p.m., and Caltrans closed Highway 101 in both directions starting at 8 p.m. to clear the area for fireworks operations. Parts of the Marina and Fisherman’s Wharf were restricted to local access.
Muni also struggled under the weight of the crowds.
SFMTA ran special shuttles to viewing areas from downtown BART stations, but the agency said before the fireworks that “unprecedented crowds & traffic” were causing significant delays and warned that riders waiting in line at Powell Street might miss the show. The agency urged people to consider walking, biking, scooters, taxis or ride-hail instead.
After the show, SFMTA warned that the “record volume of attendees along the waterfront” would cause more significant delays as people tried to leave.
Videos of at least one Waymo vehicle being towed were posted to X, while several social media users posted that the driverless vehicles appeared to be stuck throughout the night.
As of midnight, traffic remained backed up through the Presidio and surrounding neighborhoods. Mayor Daniel Lurie urged people to be patient in a video posted after the show.
“It’s going to take a while for these clogged streets to empty out,” Lurie said.
Lurie thanked people who came out and encouraged spectators to walk, bike or take public transit home safely.
“Please be patient as roads clear and look out for one another,” he wrote.
The San Francisco Department of Emergency Management also urged people to delay their departures by 30 to 60 minutes if possible, saying thousands of people were heading home and that staggering departures would help reduce traffic and crowding on transit.
Fog had been the biggest uncertainty heading into the show. Meteorologists warned that low clouds could return to the Golden Gate by showtime, though there was hope the largest shells would burst above the marine layer or light it from within.
Instead, from many western viewing spots, the fireworks vanished almost immediately, leaving spectators to guess at what was happening inside the fog.
Some people saw a more vivid display after they returned home, where illegal fireworks continued to explode across San Francisco neighborhoods including Bernal Heights and the Mission District.
In the Mission, videos posted online showed police in riot gear moving block by block to disperse crowds near 24th and Harrison streets.
The fireworks closed a day of celebrations around the Bay Area, with events including the nation’s longest Fourth of July parade in Alameda, a patriotic dog costume contest in Golden Gate Park, picnics, concerts, pub crawls and World Cup watch parties.
Subscribe
There’s more to San Francisco with the Chronicle. Subscribe today for just 25¢.
This article originally published at Golden Gate Bridge fireworks turn into foggy bust as traffic, transit snarl San Francisco.