A second ferry ran aground nearby, but all its passengers were said to be safe.

The Dumai Express 10 sank in stormy weather 90 minutes into an inter-island trip from Batam to Dumai in Riau, a province off Sumatra island in western Indonesia. The area is about 600 miles north-west of Jakarta.

The ship sank about 30 minutes after huge waves damaged its bow and water started seeping in, according to a report from the ship’s captain, said Lt Col Edwin, the local navy chief.

Indonesian ferry accidents have killed hundreds of people in recent years.

Boats are often overcrowded, and safety regulations are poorly enforced. The vast country spans more than 17,000 islands, and boats are a popular and relatively cheap form of transportation.

One survivor said he escaped from the ship by breaking a window and was rescued by fishermen, the official news agency Antara reported.

Known only as Riki, he said: “It was too fast ... and the ship crew did not tell us about the situation at all.

“We only managed to get out after I broke the glass window on the right side. That was the only way because there were many people jostling for the doors.”

He said he saw passengers leap into the sea without life jackets. Passing boats picked up dozens from the water and took them to nearby islands for medical treatment.

Local television news showed two survivors, wearing life jackets, floating on the water.

High waves have hampered the rescue operation. At its peak, there were at least nine ships and several fishing boats searching the choppy sea for people in the water.

Rescue teams found 29 bodies, including those of two children, according to the latest reports, said Rustam Pakaya, the head of the Health Ministry’s crisis centre.

He said at least 17 others were believed to be missing. Some 245 survivors were rescued.

Author-ties called off search and rescue operations when night fell, said Yasin Kosasih, the police chief in charge of co-ordinating the rescue mission.

He added: “Considering the weather conditions and the dark, we ... will resume the search tomorrow morning.”

There remains some uncertainty about how many people were on board the ferry when it sank.

Police and navy officials said ferry paperwork listed 228 passengers, including 15 children, and in addition, there were 13 crew.

However the number of people already accounted for has surpassed those figures.

The ship had a capacity of 273, but it is not uncommon for ferries in this part of the world to be overloaded.

In a separate accident on the same day a second ferry, the Dumai Express 15, with 278 people on board ran aground on its way from Batam to Moro island in Sumatra.

No-one was hurt and everyone was evacuated safely.

Indonesia has suffered several major ferry accidents in recent years.

In December 2006, a crowded ferry broke apart and sank during a violent storm, killing more than 400 people.