In my experience setting class weights always worked. I haven’t encountered a case when it did not give me a boost in performance. Also I recently used class weights with a class ratio of 100:1 with XGBoost and it worked like a charm. One thing though is that I had several millions of observations. If you a medium/small dataset then yes you might not have enough examples of the minority class