Oh no ! Never thought this was caused by IBKR. I will search for the relevant thread about this issue. Thanks for pointing me to the right direction.
However, I am afraid the issue actually occurs every day.
I looked into yesterday's situation (i.e. 20250121) where I traded as usual the 0DTE SPX options. Here are the details :
opt_contract = Option(‘SPX’, ’20250121’, 6015, ‘P’, ‘SMART’, currency=‘USD’, tradingClass=‘SPXW’)
Then, after ib.qualifyContracts(opt_contract), I got the contents of opt_contract as follows :
Option(conId=750913196, symbol='SPX', lastTradeDateOrContractMonth='20250122', strike=6015.0, right='P', multiplier='100', exchange='SMART', currency='USD', localSymbol='SPXW? 250121P06015000', tradingClass='SPXW')
So, I started wondering whether this is IBKR's screw-up or ib_insync's problem.