Lightning nodes are talking fees for routing a payment. Will fees be charged anyway if a payment fails?
Short answer: No.
Explanation: The fees are part of the onion routing package within the HTLCs. So a routing node accepts an incoming HTLCs and forwards it if there is a difference in value that can be collected as fees. The HTLCs are conditional payments on the condition that the preimage is delivered in return. This will only happen after a path of HTLCs is successfully established. If a payment fails some node can't forward the HTLC which means that noone along the path will be able to settle the HTLCs. This in turn means no fees are being paid.