diff --git a/api.go b/api.go
index 192f23f..1020414 100644
--- a/api.go
+++ b/api.go
@@ -83,7 +83,7 @@
 	action := f.Get("action")
 
 	if key == "" || scopeuuid == "" || path == "" || action != "verify" {
-		log.Error("Input params Invalid/Incomplete")
+		log.Debug("Input params Invalid/Incomplete")
 		reason := "Input Params Incomplete or Invalid"
 		errorCode := "INCORRECT_USER_INPUT"
 		return errorResponse(reason, errorCode)
@@ -215,8 +215,11 @@
 }
 
 func errorResponse(reason, errorCode string) ([]byte, error) {
-
-	log.Error(reason)
+	if errorCode == "SEARCH_INTERNAL_ERROR" {
+		log.Error(reason)
+	} else {
+		log.Debug(reason)
+	}
 	resp := kmsResponseFail{
 		Type: "ErrorResult",
 		ErrInfo: errResultDetail{
diff --git a/listener.go b/listener.go
index da921ab..3fae5c0 100644
--- a/listener.go
+++ b/listener.go
@@ -24,7 +24,7 @@
 		if ok {
 			processChange(changeSet)
 		} else {
-			log.Errorf("Received Invalid event. Ignoring. %v", e)
+			log.Debugf("Received Invalid event. Ignoring. %v", e)
 		}
 	}
 	return
diff --git a/pluginData.go b/pluginData.go
index a3411c8..ae8e011 100644
--- a/pluginData.go
+++ b/pluginData.go
@@ -3,7 +3,7 @@
 import "github.com/30x/apid-core"
 
 var pluginData = apid.PluginData{
-	Name: "apidVerifyAPIKey",
+	Name:    "apidVerifyAPIKey",
 	Version: "0.0.2",
 	ExtraData: map[string]interface{}{
 		"schemaVersion": "0.0.2",
diff --git a/validate_env.go b/validate_env.go
index 9fede78..a3a7d09 100644
--- a/validate_env.go
+++ b/validate_env.go
@@ -6,8 +6,8 @@
  * Ensure the ENV matches.
  */
 func validateEnv(envLocal string, envInPath string) bool {
-	if (envInPath == "") {
-		return false;
+	if envInPath == "" {
+		return false
 	}
 	s := strings.TrimPrefix(envLocal, "{")
 	s = strings.TrimSuffix(s, "}")
