Previously, I was not using $model->save() function for inserting or updating any data. I was simply using createCommand() to execute query and
$model->save()
createCommand()
I guess $model->load() returns false, call $model->errors to see model's error.
$model->load()
false
$model->errors
$model->load(); $model->validate(); var_dump($model->errors);