diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index b0d0e44..1e4058c 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -173,6 +173,7 @@
     _LOG_TRACE(e.what());
     return;
   }
+  _LOG_TRACE("SELECT request choosing challenge " << challengeType);
   auto challenge = ChallengeModule::createChallengeModule(challengeType);
   if (challenge == nullptr) {
     _LOG_TRACE("Unrecognized challenge type " << challengeType);
diff --git a/src/challenge-module.cpp b/src/challenge-module.cpp
index 6a28866..c7ab849 100644
--- a/src/challenge-module.cpp
+++ b/src/challenge-module.cpp
@@ -19,11 +19,14 @@
  */
 
 #include "challenge-module.hpp"
+#include "logging.hpp"
 #include <random>
 
 namespace ndn {
 namespace ndncert {
 
+_LOG_INIT(ndncert.pinchallenge);
+
 const std::string ChallengeModule::WAIT_SELECTION = "wait-selection";
 const std::string ChallengeModule::SUCCESS = "success";
 const std::string ChallengeModule::PENDING = "pending";
@@ -44,9 +47,12 @@
 JsonSection
 ChallengeModule::handleChallengeRequest(const Interest& interest, CertificateRequest& request)
 {
-  int pos = request.getCaName().size();
+  int pos = request.getCaName().size() + 1;
   const Name& interestName = interest.getName();
   std::string interestType = interestName.get(pos).toUri();
+
+  _LOG_TRACE("Incoming challenge request. type: " << interestType);
+
   if (interestType == "_SELECT") {
     return processSelectInterest(interest, request);
   }
diff --git a/src/challenge-module/challenge-pin.cpp b/src/challenge-module/challenge-pin.cpp
index 1aa96ce..d21420c 100644
--- a/src/challenge-module/challenge-pin.cpp
+++ b/src/challenge-module/challenge-pin.cpp
@@ -46,7 +46,7 @@
 JsonSection
 ChallengePin::processSelectInterest(const Interest& interest, CertificateRequest& request)
 {
-  // interest format: /CA/_SELECT/{"request-id":"id"}/PIN/<signature>
+  // interest format: /caName/CA/_SELECT/{"request-id":"id"}/PIN/<signature>
   request.setStatus(NEED_CODE);
   request.setChallengeType(CHALLENGE_TYPE);
   request.setChallengeSecrets(generateStoredSecrets(time::system_clock::now(),
@@ -58,8 +58,8 @@
 JsonSection
 ChallengePin::processValidateInterest(const Interest& interest, CertificateRequest& request)
 {
-  // interest format: /CA/_VALIDATION/{"request-id":"id"}/PIN/{"code":"code"}/<signature>
-  JsonSection infoJson = getJsonFromNameComponent(interest.getName(), request.getCaName().size() + 3);
+  // interest format: /caName/CA/_VALIDATION/{"request-id":"id"}/PIN/{"code":"code"}/<signature>
+  JsonSection infoJson = getJsonFromNameComponent(interest.getName(), request.getCaName().size() + 4);
   std::string givenCode = infoJson.get<std::string>(JSON_PIN_CODE);
 
   const auto parsedSecret = parseStoredSecrets(request.getChallengeSecrets());
diff --git a/src/client-module.cpp b/src/client-module.cpp
index fe4eb72..157f28d 100644
--- a/src/client-module.cpp
+++ b/src/client-module.cpp
@@ -187,6 +187,9 @@
   }
 
   JsonSection json = getJsonFromData(reply);
+
+  _LOG_TRACE("SELECT response would change the status from " << state->m_status << " to " + json.get<std::string>(JSON_STATUS));
+
   state->m_status = json.get<std::string>(JSON_STATUS);
 
   if (!checkStatus(*state, json, errorCallback)) {
@@ -393,7 +396,8 @@
     return false;
   }
   if (state.m_requestId.empty() || state.m_status.empty()) {
-    errorCallback("The response does not carry required fields.");
+    errorCallback("The response does not carry required fields. requestID: " + state.m_requestId
+                  + " status: " + state.m_status);
     return false;
   }
   return true;
