A method for operating a wireless network comprising a plurality of nodes, the method comprising: each node generating a set of paths to a head node; initiating an adaptive failure recovery method in the event of a source node sending a message data packet upstream and a discovery node encountering a failed node, wherein the discovery node is a node on a path taken by the message data packet from the source node to a destination node, the adaptive recovery failure method comprising the steps of: collecting, at the discovery node, relevant data, the relevant data comprising: (a) a hop-distance between the failed node and the source node; (b) a count of estimated extra hops required to deliver the data packet using a hop-distance recovery method; (c) a count of estimated extra hops required to deliver the data packet using a multipath recovery method; and (d) a latency time for the hop-distance recovery method; wherein the hop-distance recovery method comprises choosing a next hop from the discovery node by selecting a neighbouring node from one or more neighbouring nodes, the selected neighbouring node having the minimum hop distance of the one or more neighbouring nodes, wherein if the inequality X > r + α + 2 − β 2 is satisfied, then the hop-distance recovery method is selected, otherwise the multipath recovery method is selected, where: X is the hop-distance between the failed node and the source node; α is the count of estimated extra hops required to deliver the data packet using a hop-distance recovery method; β is the count of estimated extra hops required to deliver the data packet using a multipath recovery method; and r is the latency time for the hop-distance recovery method. each node generating a set of paths to a head node; initiating an adaptive failure recovery method in the event of a source node sending a message data packet upstream and a discovery node encountering a failed node, wherein the discovery node is a node on a path taken by the message data packet from the source node to a destination node, the adaptive recovery failure method comprising the steps of: collecting, at the discovery node, relevant data, the relevant data comprising: (a) a hop-distance between the failed node and the source node; (b) a count of estimated extra hops required to deliver the data packet using a hop-distance recovery method; (c) a count of estimated extra hops required to deliver the data packet using a multipath recovery method; and (d) a latency time for the hop-distance recovery method; wherein the hop-distance recovery method comprises choosing a next hop from the discovery node by selecting a neighbouring node from one or more neighbouring nodes, the selected neighbouring node having the minimum hop distance of the one or more neighbouring nodes, (a) a hop-distance between the failed node and the source node; (b) a count of estimated extra hops required to deliver the data packet using a hop-distance recovery method; (c) a count of estimated extra hops required to deliver the data packet using a multipath recovery method; and (d) a latency time for the hop-distance recovery method; wherein if the inequality X > r + α + 2 − β 2 is satisfied, then the hop-distance recovery method is selected, otherwise the multipath recovery method is selected, where: X is the hop-distance between the failed node and the source node; α is the count of estimated extra hops required to deliver the data packet using a hop-distance recovery method; β is the count of estimated extra hops required to deliver the data packet using a multipath recovery method; and r is the latency time for the hop-distance recovery method. X is the hop-distance between the failed node and the source node; α is the count of estimated extra hops required to deliver the data packet using a hop-distance recovery method; β is the count of estimated extra hops required to deliver the data packet using a multipath recovery method; and r is the latency time for the hop-distance recovery method.