NULL in_reply_to_user_id_str, but non-NULL in_reply_to_userid and in_reply_to_username


I am using python tweepy package to stream tweets via public stream. I often see NULL in_reply_to_status_id_str, but non-NULL in_reply_to_user_id_str and in_reply_to_screen_name in the same status message. Per, in_reply_to_status_id_str is described as: “If the represented Tweet is a reply, this field will contain the string representation of the original Tweet’s ID.” And in_reply_to_user_id_str and in_reply_to_screen_name are described similarly. So, I would expect that all three - in_reply_to_status_id_str, in_reply_to_user_id_str, in_reply_to_userid and in_reply_to_screen_name - would always be all NULL or all non-NULL.

Why would in_reply_to_status_id_str be NULL (or absent), but in_reply_to_userid and in_reply_to_screen_name be non-NULL in the same status?

For example, here are some recent ones like that exported from mysql table:

uid created_at userid username real_name in_reply_to_status_id in_reply_to_userid in_reply_to_username
562144729689620480 2015-02-02 07:05:22 2989671979 Shelgame7Khan Shehla khan NULL 22536055 AmericanAir
562144749461975040 2015-02-02 07:05:27 17338082 TMobile T-Mobile NULL 407183238 Summerxoxox
562144776813051904 2015-02-02 07:05:33 17338082 TMobile T-Mobile NULL 34775076 blackjess_92
562144793846108161 2015-02-02 07:05:37 17338082 TMobile T-Mobile NULL 2973838298 cold_noodle420


As far as I know, it is possible that a Tweet is considered a reply (@foobar bla is a reply to the user foobar), but when there is no specific Tweet that is replied to, the in_reply_to_status_id_str field will still be null.