Setting filter_dict=None should be a valid use case to run a frequency filter, but no flag filters. It might be worth changing the name of filter_dict to flag_filter or similar.
Currently, the function starts with flag_keep = [] and if filter_dict=None this is never updated and no TOAs are kept.
Workaround is pass a filter that all toas will pass:
filter_dict={'pta':['NANOGrav', 'PPTA', 'EPTA']}