diff --git a/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx b/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
index 8d45d86..40daeff 100644
--- a/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
+++ b/openecomp-ui/src/nfvo-components/SubmitErrorResponse.jsx
@@ -115,7 +115,7 @@
 			{item.list.map((error, i) => <ErrorMessage key={i} warning={error.level === 'WARNING'} error={error.message}/> )}
 		</div>
 	);}
-	
+
 	return (
 		<div>
 			{errors}
@@ -152,10 +152,10 @@
 const ErrorMessage = ({error, warning}) => {
 	return (
 		<ListGroupItem className='error-code-list-item'>
-			<SVGIcon 
-				name={warning ? 'exclamationTriangleLine' : 'error'} 								
-				color={warning ? 'warning' : 'negative'} />	
-			<span className='icon-label'>{error}</span>			
+			<SVGIcon
+				name={warning ? 'exclamationTriangleLine' : 'error'}
+				color={warning ? 'warning' : 'negative'} />
+			<span className='icon-label'>{error}</span>
 		</ListGroupItem>
 	);
 };
diff --git a/openecomp-ui/src/nfvo-utils/i18n/i18n.js b/openecomp-ui/src/nfvo-utils/i18n/i18n.js
index 2f63dfe..ef97b8b 100644
--- a/openecomp-ui/src/nfvo-utils/i18n/i18n.js
+++ b/openecomp-ui/src/nfvo-utils/i18n/i18n.js
@@ -14,14 +14,16 @@
  * permissions and limitations under the License.
  */
 import IntlObj from 'intl';
+import IntlMessageFormatObj from 'intl-messageformat';
 import IntlRelativeFormatObj from 'intl-relativeformat';
 import createFormatCacheObj from 'intl-format-cache';
 import i18nJson from 'i18nJson';
 /*
-	Intl libs are using out dated transpailer from ecmascript6.
-*  TODO: As soon as they fix it, remove this assignments!!!
-* */
+ Intl libs are using out dated transpailer from ecmascript6.
+ *  TODO: As soon as they fix it, remove this assignments!!!
+ * */
 var Intl               = window.Intl || IntlObj.default,
+	IntlMessageFormat  = IntlMessageFormatObj.default,
 	IntlRelativeFormat = IntlRelativeFormatObj.default,
 	createFormatCache  = createFormatCacheObj.default;
 
@@ -68,11 +70,15 @@
 	dateRelative(date, options) {
 		return createFormatCache(IntlRelativeFormat)(this._locale, options).format(date);
 	},
-	message(messageId) {
+	message(messageId, options) {
+		let messageTxt = null;
 		if (i18nJson && i18nJson[messageId]) {
-			return i18nJson[messageId];
+			messageTxt = i18nJson[messageId];
+		} else {
+			messageTxt = String(messageId);
 		}
-		return messageId;
+		return createFormatCache(IntlMessageFormat)(messageTxt, this._locale).format(options);
+
 	},
 	getLocale() {
 		return this._locale;
