Candidates is null when do match work

I have a long user track (600+ points),
when I use graphhopper’s map matching to process this track,
it first tell me RuntimeException: Sequence is broken for submitted track at time step 4 (683 points). Too long distance to previous measurement? 2607m, observation:41.7223055737,86.2452169283,NaN, 1489536924000, 0 candidates: []..
Base on this error message, I insert many points into my track so that every two adjacent points’ distance is less than 2000m.
But for this smoothed track, I get this exception:
RuntimeException: Sequence is broken for submitted track at time step 11 (1949 points). observation:41.728731494849995,86.2320769739,NaN, 1489536921000, 0 candidates: []. If a match is expected consider increasing max_visited_nodes..
It looks like candidates is always null for some points.
How can I solve this problem?

Maybe the underlying OSM map data is insufficient to do this matching?