added timeout and forced replay strategy