First of all we need to understand that this issue is coming from a seeded package. i.e. fnd_flex_server1
In this package you can search with the procedure name you are seeing in the error message to confirm where the error is coming from.
The issue might be due to either KFF or DFF as the same package is being used for both the flex fields.
In my case the below query was returning the record and it was failing while iterating the data from the cursor.
You need to pass table_id, application id, flex field name, context to get the records using the cursor.
Query:
SELECT g.end_user_column_name, g.application_column_name,
c.column_type, c.width, g.required_flag,
g.security_enabled_flag, g.concatenation_description_len,
g.default_type, g.default_value, g.flex_value_set_id,
g.runtime_property_function,
NULL
FROM fnd_descr_flex_column_usages g, fnd_columns c
WHERE g.application_id = descstruct.application_id
AND g.descriptive_flexfield_name = descstruct.desc_flex_name
AND g.descriptive_flex_context_code = descstruct.desc_flex_context
AND g.enabled_flag = 'Y'
AND c.application_id = t_apid
AND c.table_id = t_id
AND c.column_name = g.application_column_name
ORDER BY g.column_seq_num;