Conditional OR is expressed with two lines “||”. Logical OR is expressed with one line “|” and I’ve only actually seen it used with bitwise calculations like FLAG enums. When you’re using a normal conditional statement, you need to use the former I think.
There is not a bug with the simplest usage of the most basic logical operators in one of the largest languages in the world.
The problem is probably in using GetKeyDown, as it uses the values set up in the input manager. I’d look there and check that the key “w” is bound to “w”, and the key “s” is bound to “s”. Or just use the KeyCode variant.
Or you’ve got some other messups in your logic layout somewhere else in the code.