Saudi authorities issued their first air raid alert in the capital since fighting returned to neighbouring Yemen, leaving residents of Riyadh rattled after they heard explosions ringing out in the early hours of Saturday.
Yemen's Houthis have staged a lightning offensive this month, seizing swathes of territory in one of the world's poorest countries, leaving the internationally recognised government, which is backed by Saudi Arabia, scrambling to respond.
Saudi Arabia itself, one of the region's powerhouses, has conducted scores of airstrikes on Houthi-held areas but failed to stop the advance. It has also sought help from its ally, the United States, but that has not materialised.
This is the first time since Yemen's long-standing civil war resumed that it has threatened the Saudi capital, further shaking a global economy already under pressure by nearly seven months of war between the US and Iran.
"The area is under a hostile aerial threat," said a message received just before 3:00 am by Riyadh residents, urging them to stay indoors.
AFP journalists then heard two explosions, before the Saudi civil defence agency lifted the alert half an hour later.
"I heard the alarm, then my windows shook," a Riyadh resident, 27, living in the city's north, told AFP.
"It was definitely scary. I was not expecting this."
Another resident described the attack as "terrifying".
"I was extremely anxious -- especially because, unlike previous times, the 'all-clear' signal didn't come right away," the central Riyadh resident said.
Saudi Arabia has not commented on the threat mentioned in the warnings sent overnight to residents of several regions and has not identified where it originated from.
The incident comes days after Riyadh accused the Houthis of targeting Mecca on Wednesday, denouncing it as a "cowardly terrorist attack" on Islam's holy city, which welcomes millions of pilgrims each year, both Sunnis and Shias.
The Iran-backed Houthis strongly denied the accusation, calling it a "worn-out lie".
The group has reported scores of retaliatory strikes carried out daily by Riyadh since their lightning offensive this month to take over the country's entire Red Sea coast, giving them control over the vital Bab al-Mandab strait.
Riyadh was targeted with waves of attacks during an earlier iteration of the war, including a drone strike on the US embassy in the capital's diplomatic quarter in March.
The United States, according to Axios, last week refused to strike the Houthis at Saudi Arabia's request.
On Thursday, Washington approved a $24.3 billion sale of 48 F-35 fighter jets to the kingdom to help Riyadh "deter current and future threats", the US State Department said.
The United Nations said on Friday that the renewed fighting had displaced more than 112,000 people while nearly 3,000 others had fled across the sea to Djibouti.
The war in Yemen broke out in 2014 when the Houthis seized control of the capital Sanaa and other regions, triggering a military intervention led by Saudi Arabia in March 2015.
The fragile truce reached in 2022 between the warring parties collapsed in July, when the Houthis defied Riyadh's control of Yemeni airspace by allowing an Iranian aircraft to land in Yemen.
Their recent takeover of the coastline has sparked global concern, with international maritime trade already heavily impacted by Iran's imposition of a blockade on the Strait of Hormuz since the Middle East war erupted in late February.
The Houthis insist there is no threat to shipping in the sea lane -- except for Saudi ships, from the world's leading crude exporter.
The attack targeting Riyadh comes as the Houthis improve their defences in newly conquered territory along Yemen's Red Sea coastline, with members of the group telling AFP they have been installing radar and digging tunnels.
Two separate Houthi sources told AFP that Iranian Revolutionary Guards had visited the area in recent days.
Figures from maritime tracking firm Kpler showed that Saudi exports via the Bab al-Mandab strait had dropped since July, although five loaded ships had passed through in the last week.
ds/amj