Xiaofang wont record, need help

Hi, I have been having some strange issues configuring my Xiaomi Xiaofang cameras for Home assistant. Hoping someone else might have seen this strange issue.

I have 4 cameras, 2x Xiaofang S1, and 2x Dafang.
All cameras are flashed successfully using the Xiaofang-Hacks custom firmware.
I’m trying to setup standard motion recording and upload to FTP.
I’m using a unified config to simplify my config file identical on all, but the Dafangs work without issue and the Xiaofangs do not, and will not record.

I’ve reset all 4 devices multiple times, and manually configured again.
Every time, the Dafangs record as intended, and the Xiaofangs do not.
I can access all the cameras via web interface and everything looks like its working, but its not.

Config for my mqtt.conf:

############################################################
# edit this file and move it to /system/sdcard/config/mqtt.conf #
############################################################

export LD_LIBRARY_PATH='/thirdlib:/system/lib:/system/sdcard/lib'

# Options for mosquitto_sub & mosquitto_pub
USER=someusername
PASS=somepassword
HOST=192.168.1.222
PORT=1883

# Define a location
LOCATION="camera"

# Define device name
DEVICE_NAME="xiaofang"

# Define the base topic used by the camera
# send a message to myhome/dafang/set with the payload help for help.
# Results will be placed in myhome/dafang/${command} or topic/dafang/error - so please subscribe topic/dafang/# for testing purposes
TOPIC="$LOCATION/$DEVICE_NAME"

# Define an autodiscovery prefix, if autodiscovery is desired:
AUTODISCOVERY_PREFIX="homeassistant"

# Define additional options for Mosquitto here.
# For example --cafile /system/sdcard/config/DST_Root_CA_X3.pem --tls-version tlsv1
# or use a special id to connect to brokers like azure
MOSQUITTOOPTS=""

# Add options for mosquitto_pub like -r for retaining messages
MOSQUITTOPUBOPTS=""

# Send a mqtt statusupdate every n seconds
STATUSINTERVAL=30

# Publish and update the light dependant resistor (LDR) status or not. The
# default value if the variable is not set is to send it. This might be useful
# for owners of devices that lack the hardware sensor to avoid publishing
# rubbish.
SENDLDR="true"

Full config for my motion.conf:

############################################################
# edit this file and move it to /system/sdcard/config/motion.conf #
############################################################

# Enable verbose debug messages to stderr
debug_msg_enable=false

# Configure the motion core parameters:
region_of_interest=0,0,1280,720
motion_sensitivity=2
motion_indicator_color=2
motion_timeout=-1
motion_detection=on
motion_tracking=off

# Configure how to deal with motion events:
motion_trigger_led=true
publish_mqtt_message=true
publish_mqtt_snapshot=true
send_email=false
send_telegram=false
telegram_alert_type=image
send_matrix=false

# Snapshots
save_snapshot=true
save_dir=/media/motion/stills
save_snapshot_attr="0666"
save_file_date_pattern="+%d-%m-%Y_%H.%M.%S"
max_snapshots=20

# Videos
save_video=false
save_video_dir=/media/motion/videos
save_video_attr="0666"
video_duration=10
max_videos=10

# Configure FTP snapshots and videos
ftp_snapshot=true
ftp_video=true
ftp_video_duration=30
ftp_host="192.168.1.222"
ftp_port=21
ftp_username="someusername"
ftp_password="somepassword"
ftp_stills_dir="${HOSTNAME}/stills"
ftp_videos_dir="${HOSTNAME}/videos"