If you do a failover manually (not through Vitess), you'll need to tell Vitess which tablet corresponds to the new primary MySQL. Until then, writes will fail since they'll be routed to a read-only replica (the old primary). Use the TabletExternallyReparented command to tell Vitess the new primary tablet for a shard.
Older versions of Vitess supported tools like Orchestrator, which can be configured to call this automatically when a failover occurs. See our sample orchestrator.conf.json for an example of this.