package com.jraska.github.client.dagger;

import javax.inject.Scope;
import java.lang.annotation.Retention;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

// RUNTIME RetentionPolicy has to be set,
// otherwise Dagger cannot process properly graphs between modules
@Scope @Retention(RUNTIME) public @interface PerApp {
}

package com.jraska.github.client.dagger;

import javax.inject.Scope;
import java.lang.annotation.Retention;

import static java.lang.annotation.RetentionPolicy.SOURCE;

@Scope @Retention(SOURCE) public @interface PerApp {
}

--- 
+++ 
@@ -3,7 +3,9 @@
 import javax.inject.Scope;
 import java.lang.annotation.Retention;
 
-import static java.lang.annotation.RetentionPolicy.SOURCE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
-@Scope @Retention(SOURCE) public @interface PerApp {
+// RUNTIME RetentionPolicy has to be set,
+// otherwise Dagger cannot process properly graphs between modules
+@Scope @Retention(RUNTIME) public @interface PerApp {
 }
Use Runtime retention policy because of multi module project
