Why won't my CAN transceiver receive messages unless there is a long startup delay or a bus analyzer connected?
You "read on a forum" somewhere that the CAN bus needs resistors?  Seriously!!?

This is a integral part of your design.  If you are going to use CAN, you need to understand it, which means reading the relevant documentation.

Spearson is right but for the wrong reason.  A differential CAN bus as you likely have (you didn't say what interface chip you are using, but probably you have a standard differential CAN bus as driven by something like a MCP2551 at each node) requires a resistance between the lines.  This is because the recessive state is signalled by the two lines passively pulled together, and the dominant state by them being actively pulled apart.  The resistors between the lines in that sense are the equivalent of a pullup resistor on a open collector line.  Without something pulling the lines together when nothing is driving the bus, the bus doesn't work.

The resistors also function as terminators as spearson pointed out.  You generally use twisted pair for the two bus lines.  This has a impedance of around 120 &Omega;.  This type of differential CAN bus is defined to have 60 &Omega; between the lines as a pull-together so that it can be implemented with 120 &Omega; at each to terminate the bus and avoid reflections.

&nbsp;