Where error 4114 comes from
ChartIndicatorAdd reports 4114 when the chart and indicator use different symbols or timeframes. Other attachment failures can report different codes; record the actual result. The numeric value is listed in the official runtime error table, which is separate from MetaEditor compilation errors and trade server return codes.
Reset the last-error state before the suspected call, save its direct return value, and read GetLastError immediately afterward. This produces a causal log instead of a stale code.