Accessing model out of load order

Looks like user-private-messages.js.es6 provides a direct reference to the userTopicsList controller, so you probably want to use that to lookup rather than going through the container.

# user-private-messages.js.es6#6
userTopicsList: Ember.inject.controller("user-topics-list"),

This also means that you can set a watch on the property() so that the computed property updates automatically when the userTopicsList changes

api.modifyClass("controller:user-private-messages", {
  showMessagesCTA() {
    return this.get("userTopicsList.model.topics.length") < 5
  }.property("userTopicsList.model.topics.length")
})

Bonus points, I believe property() passes its arguments into the method (and if not, using the @on decorator does), so you could end up with something like

api.modifyClass("controller:user-private-messages", {
  @on("userTopicsList.model.topics.length")
  showMessagesCTA(length) { return length < 5 }
})