@Path/Query exception message update
> URL query string must not have replace block.

Should read something like:

> URL query string must not have replace block. For dynamic query parameters use @Query.

http://stackoverflow.com/q/25658885/132047

retrofit/src/main/java/retrofit/RestMethodInfo.java
retrofit/src/main/java/retrofit/RestMethodInfo.java
retrofit/src/test/java/retrofit/RestMethodInfoTest.java
diff --git a/retrofit/src/main/java/retrofit/RestMethodInfo.java b/retrofit/src/main/java/retrofit/RestMethodInfo.java
index c14b00ff9c..5905f25771 100644
--- a/retrofit/src/main/java/retrofit/RestMethodInfo.java
+++ b/retrofit/src/main/java/retrofit/RestMethodInfo.java
@@ -223,7 +223,8 @@ private void parsePath(String path) {
       // Ensure the query string does not have any named parameters.
       Matcher queryParamMatcher = PARAM_URL_REGEX.matcher(query);
       if (queryParamMatcher.find()) {
-        throw methodError("URL query string \"%s\" must not have replace block.", query);
+        throw methodError("URL query string \"%s\" must not have replace block. For dynamic query"
+            + " parameters use @Query.", query);
       }
     }
 

diff --git a/retrofit/src/test/java/retrofit/RestMethodInfoTest.java b/retrofit/src/test/java/retrofit/RestMethodInfoTest.java
index 1a118eba7c..696fee28f6 100644
--- a/retrofit/src/test/java/retrofit/RestMethodInfoTest.java
+++ b/retrofit/src/test/java/retrofit/RestMethodInfoTest.java
@@ -1307,7 +1307,8 @@ class Example {
       fail();
     } catch (IllegalArgumentException e) {
       assertThat(e).hasMessage(
-          "Example.a: URL query string \"bar={bar}\" must not have replace block.");
+          "Example.a: URL query string \"bar={bar}\" must not have replace block. For dynamic query"
+              + " parameters use @Query.");
     }
   }
 
