why would I get StackOverFlow error?

I really don't know why the recursion does not terminate

```
public class Solution extends GuessGame {
public int guessNumber(int n) {
return help(1, n);
}
public int help(int s, int e){
int mid = (s + e)/2;
if (guess(mid) == 0){
return mid;
}else if (guess(mid) > 0){
return help(s, mid - 1);
}else{
return help(mid + 1, e);
}
}
}
```