The main problem with Lojban is that it's an artificial language based on the predicate logic whose developers know so little about logic that they believe it s a good idea to build a language on the top of the classical predicate logic. They don't notice the problem because they don't actually try to use the language for logical reasoning but instead treat it as an ordinary everyday non-logical language with a slightly funny syntax and a weird insistence that no word may mean two different things.
There are many reasons why predicate logic is an awful base for human communication and the most fundamental of them is that it's an extremely fragile system. Make the tiniest mistake, and you are left with an inconsistent knowledge base. This is bad because every sentence is a logical consequence of an inconsistent set of sentences. But, just to make it clear, this is not a practical problem for Lojban-speakers because they aren't doing any logic with it.
But suppose that they did and actually were veeery careful about their formulations. Then they would find out about the second problem that they now ignore: belief revision. Namely, the lack of it. The predicate logic doesn't have any built-in mechanism for removing stuff from the knowledge base. If you conclude that something is true, it will stay true forever and ever. If you then want to conclude that it really is false, you can do it, but then it is both true and false and you are back to the inconsistent situation where you will believe everything. If the lojbanites want to someday use the language for logic (they don't), they will have to define how belief revision works for them and that's a bitch to do with classical logic. The result will be a system that is too difficult to use in practice so everyone ignores it and continues using Lojban in the non-logical fashion, just like they use normal languages.
One of the stated goals of Lojban is to provide an unambiguous language, but they tackle ambiguity only on superficial syntactic level (and failed even in that, the Lojban tutorial that I read had an example of Lojban sentence that had two parse trees). They leave out the much more important semantic ambiguity. If I get misunderstood because of my syntax, I can always state it differently to get understood. If the words itself mean different things to the listener, simple rewording won't help.
The Lojban folks happily allow people introduce words that don't have an unambiguos definition. Last that I looked at the language they had the word for 'fast' there, and that word is damned ambiguous. There was also a suggestion to use 'fast according to the standard X' instead, but that doesn't help the situation the slightest because the original 100% ambiguous 'fast' is still there and if someone actually tried to define the standards 'X', they would quickly find out that they can't do those in a way that is both unambiguous and useful. Well, they would find that if they could do logic. But they can't so they they probably wouldn't notice any problems at all.
I've read one document that claimed to define formal semantics for Lojban. It was the standard semantics of classical predicate logic without any information at all on how it should (or even could) be applied to human communication. No thought was given to the problem of ensuring that the speakers agree with each other about the definitions of the words. It's just assumed that the speakers will know what the words mean, just like when using ordinary non-logical languages.