Weak leadership, poor judgment and a lack of "warfighting toughness" led to the capture of 10 US sailors by Iran in the Gulf in January, the US Navy says.
They were detained after their boats entered Iranian territorial waters, but were quickly released.
Six officers and three sailors have since been disciplined or face action.
The US Navy also said Iran violated international law by impeding the vessels' "innocent passage".
The two boats were travelling from Kuwait to Bahrain, home of the US Fifth Fleet.
"Crewmembers lacked navigational awareness, proper communication with higher authority, and appreciation of the threat environment throughout the transit," the report said.
For each boat, two of the five on-board weapons were mounted but not manned. Crews also failed to get approval before deviating from their route and failed to report the engine failure that led to their capture.
They were within sight of Iran's Farsi Island, which also serves as an Iranian speedboat base, but believed it to be Saudi territory.
The sailors, who were held for 15 hours on Farsi Island, were also criticised for their behaviour during about 15 hours in Iranian captivity.
One sailor made "statements adverse to US interests" and another encouraged fellow crewmembers to eat food offered to them while being recorded on video, which could be used for propaganda purposes.
Seven were interrogated - "some were honest, while others lied or played dumb," the report said.
None were harmed, but Iranian interrogators "employed intimidation tactics such as slapping the table, spinning the captive's chair, or threatening to move them to the Iranian mainland".
Despite the errors, the US Navy also insisted its boats "had every right" to be where they were and said Iran had "violated international law as well as US sovereign immunity" by boarding and seizing them.