From Der Krieg Zur See: Der Handelskrieg mit U-Booten ed. Arno Spindler (German official history):
The Loss of U 28, Kapitänleutnant Georg Schmidt, on 2.9.1917
On 19.8.17 U 28 left Emden for the war on shipping in the Arctic Sea. Officially confirmed newspaper reports state that, on 2.9.17 at 1155 a.m., 85 miles NbE1/2E from North Cape, in position 72°34N, 27°56E, the U-Boat attacked the armed English steamer Olive Branch, 4649 t., carrying munitions from England for Archangel. Since the steamer was not sunk by a torpedo hit, U 28 came to close range to finish her with gunfire. The second shell hit the cargo of munitions, which detonated with an enormous explosion, whereby the U-Boat was so badly damaged that it sank. Some men of the crew of U 28 were seen swimming, but were not picked up by the Olive Branch's lifeboats. No survivors.
The First World War German submarine U 28 was sunk in remarkable circumstances. One account, in Under the Black Ensign by R.S. Gwatkin-Williams (London: Hutchinson, 1926), says that when the cargo of ammunition carried by the British ship Olive Branch was touched off by one of U 28's shells in a close range surface bombardment, a truck carried as deck cargo was blown into the air, only to land (from a great height) on the U-Boat, sinking it.
Although this version first appears in print several years after the event, it is feasible that the blast of the explosion, followed by the resultant tidal wave could have laid the submarine over far enough to swamp her open hatches.
A heavy lorry crashing down on deck would have contributed to the damage, though probably not sufficiently to be fatal to a strongly built vessel like a submarine.