Control hazard
When the pipeline doesn't know which instruction to fetch next because the outcome of a jump (a branch) isn't resolved yet. The jump may be taken or not — and until it's decided, the CPU doesn't know where to keep fetching.
Problem: a deep pipeline fetches new instructions every cycle, but a conditional branch (an if, a loop) is only resolved several stages later. Waiting for the answer would create a big bubble at every branch — and code is full of branches (every 5th-10th instruction). Solution: branch prediction — guess the outcome and fetch speculatively along the guessed path. If the predictor guesses right (which it does >95% of the time in modern CPUs) the pipeline flows without interruption; if it guesses wrong, all speculatively fetched instructions must be discarded (a "branch misprediction flush" — typically 15-20 wasted cycles). That's why branch prediction is so crucial for performance, and why unpredictable branches (data-sensitive if statements) are costly. One of the three hazard types. Related to pipeline stall and branch prediction.