We recently had a problem with a template that was working without a problem until we used a template partial.
The job of this partial was to display the contents of a relationship field that was shared between channels. We wanted this field to display its contents consistently whenever it was used, so a partial was the way to go.
However as soon as the partial was included and we saved the template, that page just refused to load. Instead we watched the browser's waiting spinner, which just kept on spinning.
What was going on?
We removed the partial and everything was working again.
The reason?
Our relationship field was called {promotional_panel} and our template partial was also called {promotional _panel}.
It's obvious whan you think about it - what does {promotional_panel} actually refer to in this case?
We renamed the partial {promo_panel} and everything was back to normal.
A silly mistake, but it was so easy to get caught out with this one (we were in a rush).
We hope sharing this here will help.