Don't believe the media, believe the numbers.
In the last election, Labour took 30.4% of the UK-wide vote. The Tories took 36.9%.
In the last election, Labour took 42.3% of the Copeland vote. The Tories took 35.8%
Currently, Labour is polling around 26% of the UK-wide vote. The Tories are around 42%
Pure math would then suggest Labour should take 36.2% in Copeland. The Tories 40.7%
However, the "other parties" took less of the vote than otherwise expected.
In the by-election Labour and the Tories, combined, took 81.5%. If you adjust things;
The math suggests Labour should take 38.3%. The math suggests the Tories should take 43.2%
In the actual by-election, Labour took 37.3% in Copeland. The Tories managed to win with 44.2%
This is not a shocking surprise win.
This was to be expected.
Constituencies change over time. The fact that Copeland was Labour for 80 years means nothing. Copeland has been trending Tory for the past 3 decades, and the fact the party won it, when they are at 42% of the support nationwide, is completely and totally unsurprising.
Edited to add:
The ratio method may not be clear to new readers, so I will explain it.
26% (the current polling level of Labour) needs to be compared to 30.4% (what they took last time)
This is 0.855
0.855 * 42.3 (what they took in Copeland) is 36.2
The Tories factor is 1.138 (36.9 vs 42) and applied to Copeland that is 40.7
The weakness of this system is that you'll end up with numbers above or below 100 if you do this for all parties; but this is simply corrected by calculating the new percentage using these numbers as a base.
No, it is not perfect, but it tends to work better than uniform swings, especially when the combined vote of the top two parties is under 80%