I have created a very simple test case to reproduce this issue.
I am trying to set a footer view programmatically to a tableview. Please note that I am referring to the
Do not set translatesAutoresizingMaskIntoConstraints = false on a UIView being assigned to tableView.tableFooterView.
In your case, this is footerContainer. I had this same problem. It was mentioned in a comment on the question, but I still spent hours troubleshooting before I noticed I was doing that, so I am putting it here as a possible answer as well.