Hi Rahul,
I guess you've already fixed this... but just comment my case and how I've solved same issue.
This problem is related with FIELDCATALOG and/or LAYOUT of your ALV and you get this error only when execute in background...
As debugging in background would be complex I suggest to set a breakpoint in your program at moment of ALV is called. It could be at FM: REUSE_ALV_GRID_DISPLAY_LVC or REUSE_ALV_GRID_DISPLAY or in OO scenario at method SET_TABLE_FOR_FIRST_DISPLAY
Then set variable SY-BATCH = 'X' (this way ALV will behave as runs in background mode).
Then you will be able to set another breakpoint in program SAPLKKBL (LKKBLF99) and see exactly the field is causing your inconsistency.
Regards,
Alfonso.