Factual error: Several times the movie shows two torpedoes side by side, fired off simultaneously. This was not possible in German U-Boats, a simple timer prevented this and delayed firing the second or more torpedo by a few seconds. Torpedoes in WWII were prone to premature detonation and without this mechanism, one premature detonation could ignite a whole salvo, a significant risk of killing the sub that fired them.
Factual error: When Rabbit first checks the German sub's torpedo tubes, we catch a glimpse of the torpedo loaded in the tube, its propulsion screws visible. It is loaded incorrectly and missing the piston-type device put in behind the torpedo which pushes the torpedo out via compressed air. This torpedo wouldn't go anywhere when fired. (00:53:12)
Plot hole: The Americans disguise S-33 as a German Type VII U-boat to pose as the German resupply boat. This is a pretty bad idea, since all resupply boats are of the Type IXV and not Type VII. Of course in a severe storm the differences between types might go unnoticed, but the plan could not rely on that alone. In good visibility, any able German watchman would be able to spot the difference quickly.
Factual error: The American crew tries to fool the German destroyer by launching a corpse and debris through the torpedo tubes. However, at more than 150 meters depth this would have been pretty much suicide. The outer torpedo doors of a Type VII sub were not designed to be opened in depths exceeding 20 meters. At 150 meters, the crew probably would have been unable to open them in the first place, but even if they did the brutal water pressure would have likely severely destroyed the outer and inner torpedo doors and caused the submarine to be flooded and crushed in seconds.
Plot hole: At the beginning of the movie, the German commander sends a radio transmission with the damaged sub's position at "AL 85-32." The German Kriegsmarine divided up the Atlantic in grid squares like these, but "AL 85-32" means the damaged sub is just roughly 375 miles west of Ireland, but more than 2700 miles from the US east coast. There is no way on earth the Americans beat the Germans to this location, especially since the German supply sub is already en route. Funny enough considering the controversy about the movie, for this position the British would have been in perfect position to intercept.
Factual error: At the beginning of the movie, the German commander wants to send an emergency message with coordinates to the BdU, the German Submarine Command, to send help. The scene is subtitled in English with "To Berlin: Location 85-32." However, the command post at the time was based in Lorient, France and not in Berlin. (00:08:05)
Deliberate mistake: In the scene near the end of the movie when Trigger is in the bilge trying to stop the air leak, the concussion of an artillery shell fired from the destroyer shakes some pipes loose. The mistake is that one of the flanges visible on a section of pipe has no bolt holes, making it impossible to join that pipe to anything.
Continuity mistake: After the German captain has attacked Tank and handcuffed him to the crane, the pattern of blood on Tank's face changes at least twice. First, he has two channels of blood running down the left side of his face under his nose and on his chin, and no blood on his lips or the right side of his face. Then, when Eddie and Tyler arrive, there is blood smeared all over Tank's nose and lips. Finally, after Tyler takes the cuff off and is yelling at Tank, all of a sudden there is a line of blood from Tank's nose across his cheek to his right ear. (01:09:05)
Continuity mistake: Just after Mazzola's been killed, Tyler unlocks the handcuffs from Tank. The handcuff starts swinging as soon as Tank pulls his hand free, but in the next shot it's stopped moving. (01:09:42)
Deliberate mistake: When the Americans are in the U-571 battling the resupply sub, Tank gets the engines running and starts the sub moving forward. There is an exterior shot of the sub's propellers, with the port prop turning counterclockwise and the starboard prop turning clockwise. Then Tyler wants to turn right to heading 010, and he orders "Starboard back full", which should reverse the direction of the starboard propeller to help turn the sub. Two exterior shots later, however, the props are shown still turning exactly the same way they were before Tank reversed the starboard engine. (00:52:00 - 00:53:35)
Continuity mistake: Mazzola has just been killed and when Tyler helps Tank, first he holds Tank using his left hand, then the next shot by his right.