@Shreyash Choudhary Hello and welcome to Microsoft Q&A.
As I understand you are having difficulty getting error message. You used activity('abcd').output.error.message
Error is not part of output. You need to use:
activity('abcd').error.message
I have made this mistake myself plenty of times. Output and Error (when present) both are complex objects. The properties have named keys, not positional keys, and this is why you got "system.collections.generic.dictionary". If you want to see the whole thing, I recommend converting to string first. This forces the whole object to resolve.
When troubleshooting I often use @{activity('abcd')}. Then I copy the result to a text editor and clean it up (the result gets escaped ("->\").