diff --git a/cli/src/main/java/org/onlab/onos/cli/net/IntentPushTestCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/IntentPushTestCommand.java
index f3c6b41..ef9b5b5 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/IntentPushTestCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/IntentPushTestCommand.java
@@ -119,7 +119,7 @@
     }
 
     private void submitIntents(List<Intent> intents) {
-        IntentOperations.Builder builder = IntentOperations.builder();
+        IntentOperations.Builder builder = IntentOperations.builder(appId());
         for (Intent intent : intents) {
             if (add) {
                 builder.addSubmitOperation(intent);
@@ -132,7 +132,7 @@
         start = System.currentTimeMillis();
         service.execute(ops);
         try {
-            if (latch.await(10, TimeUnit.SECONDS)) {
+            if (latch.await(30, TimeUnit.SECONDS)) {
                 printResults(count);
             } else {
                 print("Failure: %d intents not installed", latch.getCount());
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/RandomIntentCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/RandomIntentCommand.java
index 75d1bce..2a8a6ac 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/RandomIntentCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/RandomIntentCommand.java
@@ -86,7 +86,7 @@
     }
 
     private void submitIntents(Collection<Intent> intents) {
-        IntentOperations.Builder builder = IntentOperations.builder();
+        IntentOperations.Builder builder = IntentOperations.builder(appId());
         for (Intent intent : intents) {
             builder.addSubmitOperation(intent);
         }
@@ -95,7 +95,7 @@
     }
 
     private void withdrawIntents() {
-        IntentOperations.Builder builder = IntentOperations.builder();
+        IntentOperations.Builder builder = IntentOperations.builder(appId());
         for (Intent intent : service.getIntents()) {
             if (appId().equals(intent.appId())) {
                 builder.addWithdrawOperation(intent.id());
