I added a custom field to calibre. Went fine. Just a read column with yes/no selection. I had most of my books set with the proper read/not read check marks. So far so good.
I then today I decided to update the tags in my database using the bulk edit meta data function. Every single tag got reset back to X, if I had a check mark there.
How can I prevent Calibre from resetting the field when I do a bulk edit, when I want it to stay the way it is? When I want to change the field in bulk, it works great.

iI seem to remember reading that there was a way to change the default value for Y/N fields. Could this have inadvertantly happened?

There is a "Tweak" to set Y/N(Boolean) to Tri-state.
If something happened to the Tweak file, it resorts to default.
I would guess, that if you copied the library to another system, the tweaks had better be the same .. Before.

I don't have undefined available to me. I just have the green check and the red x available.

It looks like, even though I don't go the custom field tab, everything no matter what, unless I change it to green check is set to red check.

The only way that can happen is if you changed the tweak

bool_custom_columns_are_tristate = 'yes'

to be

bool_custom_columns_are_tristate = 'no'

I confirm that the bug exists when the tweak is set to no. I will look at fixing it. In the meantime, the workaround is to change the tweak back to 'yes', but that will have the side effect of permitting boolean columns to be Yes/No/empty instead of just Yes/No.