Delays and unsigned long

UKHeliBob:
When used correctly there is no problem with millis() rolling over.

As to not being able to use large values with the delay() function, it takes an unsigned long as its argument and they can go up to 4,294,967,295 so you have plenty of time on your hands. In your code what type of variable is volume ? 32 seconds is a very suspicious number. Could the delay actually be 32.767 seconds I wonder ?

If you Serial.print pourdelay just before the delay() what values do you get ?

Looks like this is the culprit, volume is a byte. Try changing 9250 to 9250UL. If that doesn't fix it, cast volume to be unsigned long too.