We have been hearing lot of complaints on how to get more information for error 28559 when doing RDA or Merge Replication.
If you are using managed API (SqlCeReplication OR SqlCeRemoteDataAccess), then it should be straight forward for you as you would be receiving SqlCeErrorCollection in SqlCeException.Errors which would contain list of errors. This list would tell you more on why there was a problem opening the database.
However, if you are native programmer and using ISSCEMerge, ISSCERDA interfaces, then you need to do some extra steps in getting that information. We have written a sample to help you get the error information much like how our managed wrappers get it. Please have a quick look at our sample app attached to this blog post for more details.