
Hi.
When you have an adjacency_list graph with its EdgeList (not OutEdgeList) parameter set to vecS, then any add_edge() operation may invalidate all existing edge descriptors. This is not documented anywhere - not under the add_edge() operation and not under the 'Iterator and Descriptor Stability/Invalidation' section in adjacency_list.html which in fact explicitly states that add_edge() operation does not invalidate edge descriptors.
One more update - this seems not to affect adjacency_list graphs with their Directed template parameter set to boost::directedS. For those graphs edge descriptors remain stable. For boost::undirectedS & boost::bidirectionalS graphs they do not. Hope this helps. Best regards, Jurko Gospodnetić