When is bidirectional search unusable? Is there any situation that bidirectional search on a graph is not applicable? for example is there any classes of graph that we can only use ordinary Dijkstra's algorithm, and can not use its bidirectional variant.

The graph may be a dynamic graph.
Yes, a simple one is coming to my mind, a dynamic graph where the search operators are not reversible, i.e. both predecessors and successors of a node in the graph can not be calculated.