John Weaver walked down the shore of Rush Creek to one of his more reliable southeastern Minnesota fishing holes, hoping to land some brown trout. Instead he saw a white belly of a dead fish floating on the water. Then another, and another.

"I fish 100 days a year and I have almost never seen a dead trout on the water," Weaver said. "It happens very, very rarely. I have never seen two floating in the same pool."

It was the evening of July 25. He walked up and down the shoreline and saw that many more fish had washed up on the stream's banks. It turned out he had stumbled across a massive die off, with at least 2,500 fish dead, the majority of which were brown trout.

Three state agencies are investigating what caused the fish kill and are testing both water and fish-tissue samples. Sometimes warm temperatures, diseases or natural algae blooms can kill large amounts of fish at once. But early signs show that this die-off most likely did not happen naturally, according to a statement from the Minnesota Pollution Control Agency.

Because so many fish were washed up on shore, the best guess from state investigators is that the kill happened July 23, two days before Weaver's discovery, when a heavy downpour would have raised the creek's water level.

"Such rainfall events are known to result in contaminated runoff to streams and rivers," the MPCA said in a statement.

Runoff from the storms could have carried agricultural pesticides, which could have poisoned the fish, or manure, which could have sucked all the oxygen out of the water and suffocated the fish.

The massive die-off was the third in the last seven years in a 5-mile radius around Lewiston, Minn. Anglers and clean-water advocates are frustrated that the MPCA and the Department of Natural Resources haven't done more to keep the die-offs from happening.

In September 2019, thousands of fish died in Garvin Brook, a designated trout stream northeast of Lewiston. The MPCA couldn't test the water in time to find out exactly what killed them, but determined that it was most likely contaminated runoff. In 2015, an estimated 10,000 fish died in the southern branch of the Whitewater River a few miles northwest of Lewiston. Again, the state wasn't able to collect water samples soon enough to determine the cause.

The MPCA declined to answer questions about its investigation.

Rush Creek, known for its trout fishing, winds through the large corn and soybean fields of southern Minnesota. One reason for its popularity is accessibility, with bridges and public easements opening up nearly the entire stream, Weaver said.

Mark Reisetter, a board member of Minnesota Trout Unlimited, lives in Lewiston and helped Weaver report the fish kill to the state agencies.

"If we believe the kill happened as a result of Saturday's hard rain, then that's at least 48 hours after the fact when it was first reported," Reisetter said. "Chemicals break down, of course, and the toxin gets diluted. So the question is, was it all the way to the Mississippi by the time it was reported?"

It's not just the number of the fish, but the size that has anglers saddened by the loss. A homeowner, who lives just upstream of the bridge where Weaver found the die-off, waded out to collect one of the victims. It was a 27-inch brown trout, the fish of a lifetime. It could take a decade for that part of Rush Creek to produce a fish of that size again, said John Lenczewski, executive director of Minnesota Trout Unlimited.

"The frustrating part is that it keeps happening," he said. "Something is broken here, where either the rules aren't strict enough to protect the water or the rules aren't being followed and there isn't an adequate deterrent. But something has to change."