How hellvinz says is a facebook bug.
I have find a workaround for now that seems that works:
change this
graph = @FBGraph.get_object(user.fb_user_id)
to this
graph = @FBGraph.get_object("#{user.fb_user_id}?fields=id,name,username,picture,link")
Explicitly declaring the fields seems that solve the problem.
And if this is not sufficient there are 2 more tricks that can resolve the problem:
- Calling again after a time delay (for example after an hour), and calling only the requests incomplete
- Creating multiple fb app ID and accounts differentiating the requests with the accounts